jQuery函数仅运行一次

富有的

我试图使用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();
});

它有效,但仅适用于第一次。所有其他时间要素也都说“ 17小时前”。

我猜测该函数仅在第一个时间实例上运行一次。

我怎样才能确保每个程序都在运行,并且效率很高?

用户名

您需要遍历所有时间标记。现在,您仅将其应用于的第一个实例<time>使用jQuery .each()

$(document).ready(function(){
    var time = $('time');

    time.each(function() {
        date = moment($(this).attr('datetime'));
        $(this).html(date.fromNow());
    });
});

jsFiddle演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章