jQuery - Как я могу сделать "для оценки атрибута элемента" - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть измененная версия плагина jQuery TimeAgo . Единственная настройка заключается в том, что я могу устанавливать пользовательские атрибуты вместо глобальных.Причина этого в том, что я могу иметь суффикс для одних тегов, а не для других.Эта настройка работает сама по себе, поскольку я тестировал ее по-разному.

Однако способ выбора элементов / атрибутов не работает должным образом.

Моя разметкаимеет следующее

<time data-suffixAgo="" datetime="2010-06-24T14:10:22Z" title="2010-06-24T14:10:22Z">4 months </time>
<time data-suffixAgo="ago" datetime="2010-11-10T06:00:44Z" title="2010-11-10T06:00:44Z">less than a minute ago</time>
<!-- note the data between the <title> tags is generated server side.
 I'm not talking about that data, just the jQuery information-->

И вывод во время выполнения говорит:

4 months ago
less than a minute ago

Теперь проблема в том, что «4 месяца назад» не должен говорить «назад», потому что мойdata-suffixAgo атрибут пустой

Вот jQuery, который я использую

// selects all "time" tags on the page and give the friendly "timeago"
// uses the jquery.timeago.js plugin
// all time tags are created using the "ToTimeSpan" Date Extension Method 
$('time').timeago({strings:{suffixAgo: $(this).attr("data-suffixAgo")}});

Может кто-нибудь сказать, почему мой селектор не тянет атрибут data-suffixAgo для каждого элемента?

Если я использую это

    $('time').timeago({strings:{suffixAgo: ""}});

, то "назад" будет удалено из всех <time> тегов, и если я сделаю это

    $('time').timeago({strings:{suffixAgo: "ago"}});

"назад" будет добавлено ко всем <time> тегам

1 Ответ

2 голосов
/ 10 ноября 2010

Попробуйте:

$('time').each(function(){
    $(this).timeago({
        strings: {suffixAgo: $(this).attr("data-suffixAgo") }
    });
});

Значение $ (this), которое вы имеете в своем коде, относится ко всему набору $ ('time').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...