jQuery - 我该怎么做“每个元素属性评估”

时间:2010-11-10 06:08:48

标签: jquery debugging html5

我有一个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>代码中的“strong”将被删除,如果我这样做

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

“之前”将添加添加到所有<time>代码

1 个答案:

答案 0 :(得分:2)

尝试:

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

你的代码中的$(this)指的是整个$('time')。