问题:如何将每个标题单独转换为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>
答案 0 :(得分:1)
您的代码仅抓取第一个title
元素的.timeago
属性。
[jQuery的attr()][1]
方法“[获取]匹配元素集合中第一个元素的属性值,或[集合]每个匹配元素的一个或多个属性” (docs)。
使用jQuery's .each
方法,如果您要对中每个所选元素执行操作:
$(".timeago").each(function() {
var dateString = $(this).attr('title');
var dateConvert = new Date(dateString);
$(this).attr('title', dateConvert.toISOString());
});