如何在jquery中加载所有元素

时间:2017-01-02 11:47:51

标签: javascript jquery

好。我有不同的span并将其id属性设置为Y-m-d格式的日期。我使用倒计时js来计算每个跨度倒计时,但我的函数只选择一个日期并对其应用倒计时。它没有评估其他日期的倒计时。

<span class="timer" id="2017-10-1"></span>
<span class="timer" id="2017-10-2"></span>
<span class="timer" id="2017-10-3"></span>
<span class="timer" id="2017-10-4"></span>

这是倒计时jquery

http://hilios.github.io/jQuery.countdown/

以及我在函数中写的内容。

$(document).ready(function () {
    var time = $(".timer").attr('id');
    var timeLeft = time.split('-').reverse().join('-');
    $(".timer").countdown(timeLeft, function (event) {
        $(this).text(event.strftime("%D days %H hours %M minutes %S seconds remaining"));
    });
});

3 个答案:

答案 0 :(得分:1)

.attr('key')将仅获取第一个元素的值,因此将根据第一个元素计算timeLeft

使用.each()迭代$(".timer")对象,并在元素上单独应用插件countdown()

$(document).ready(function(){
    $(".timer").each(function(){
        var time = this.id;
        var timeLeft = time.split('-').reverse().join('-');
        $(this).countdown(timeLeft, function(event){
            $(this).text(event.strftime("%D days %H hours %M minutes %S seconds remaining"));
        });
    })
});

答案 1 :(得分:0)

我认为你需要的是使用.each:https://api.jquery.com/each/

可能看起来像这样:

make rt/librt.a

这是因为您需要使用相同的类迭代所有元素,您可以使用.each()轻松完成此任务。

希望它有所帮助!

答案 2 :(得分:0)

每当您需要将元素特定数据应用于该元素的插件选项时,迭代该集合,以便您可以隔离each循环内的特定元素实例。然后获取该元素特定数据并传入单个元素插件初始化选项

$(".timer").each(function()
     // "this" is specific element instance
     var time = this.id;
     var timeLeft = time.split('-').reverse().join('-');
      $(this).countdown(timeLeft, function(event)               {
            $(this).text(event.strftime("%D days %H hours %M minutes %S seconds remaining"));
      });
});