使用Moments.js库我尝试从每个时间标记中获取datetime属性的值,并使用自然语言输出时间。
鉴于此:
<time datetime="2014-06-27"></time>
结果将是:
<time datetime="2014-06-11">17 hours ago</time>
使用此:
$(document).ready(function(){
var time = $('time'),
date = moment(time.attr('datetime')),
update = function(){
time.html(date.fromNow());
};
update();
});
它有效,但仅适用于第一次元素。所有额外的时间元素也在说&#34; 17小时前&#34;。
我的猜测是该功能仅在第一个实例上运行一次。
我如何确保为每个人运行并有效地运行?
答案 0 :(得分:2)
您需要遍历所有时间标记。现在,您只将它应用于<time>
的第一个实例。使用jQuery .each()
。
$(document).ready(function(){
var time = $('time');
time.each(function() {
date = moment($(this).attr('datetime'));
$(this).html(date.fromNow());
});
});
<强> jsFiddle Demo 强>