1

问题:如何将每个标题单独转换为 ISO8601

我正在尝试利用 timeago JQuery 库。我用 UTC 字符串填充标题,所以我必须在运行 Timeago 库之前将 UTC attr 标题转换为 ISO8601,否则 Safari/FF/IE 什么也不显示。

jQuery

var dateString = $('.timeago').attr('title');
var dateConvert = new Date(dateString);
 $('.timeago').attr('title', dateConvert.toISOString());

HTML

<abbr class="timeago" title="Sun, 30 Jul 2014 15:06:00 -0500"></abbr>
<abbr class="timeago" title="Sun, 30 Jul 2014 14:45:00 -0500"></abbr>

结果

<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>
<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>

预期成绩

<abbr class="timeago" title="2014-07-30T20:06:00.000Z">3 minutes ago</abbr>
<abbr class="timeago" title="2014-07-30T19:45:00.000Z">24 minutes ago</abbr>
4

1 回答 1

1

您的代码只是获取第一个元素的title属性。.timeago

[jQuery 的attr()][1]方法“[gets] 匹配元素集合中第一个元素的属性值,或 [sets] 每个匹配元素的一个或多个属性” ( docs )。

.each如果要对集合中的每个选定元素执行操作,请使用jQuery 的方法:

$(".timeago").each(function() {
    var dateString = $(this).attr('title');
    var dateConvert = new Date(dateString);
    $(this).attr('title', dateConvert.toISOString());
});
于 2014-07-30T20:33:43.437 回答