在HTML表中包含多个jquery倒计时表只设置一次

时间:2013-04-12 22:02:45

标签: jquery html-table countdown

我正在开展一个项目,我需要在一个页面上显示几个拍卖的状态。每个项目都有不同的结束日期。我给每一行一个唯一的ID,然后使用该id设置时间,但它只设置一次。 这是我的脚本代码:

<script>
$(document).ready(function(){  
$('tr[id]').each(function () {
 var $this = $(this);
 var endDate = new Date();
 var count = $this.attr("id");
 var year = parseInt(count.slice(0,4));
 var month = parseInt(count.slice(4,6));
 var day = parseInt(count.slice(6,8));
 var hour = parseInt(count.slice(8,10));
 var minute = parseInt(count.slice(10,12));
 var second = parseInt(count.slice(12,14));
 endDate.setFullYear(year, month - 1, day);
    endDate.setHours(hour+1);
    endDate.setMinutes(minute);
    endDate.setSeconds(second);
 $('.countdown-styled').countdown({
      until: endDate,
      format: 'dHMS',
      render: function(data) {
        var el = $(this.el);
        el.empty()
          .append("<div>" + this.leadingZeros(data.days, 2) + " <span>days</span></div>")
          .append("<div>" + this.leadingZeros(data.hours, 2) + " <span>hrs</span></div>")
          .append("<div>" + this.leadingZeros(data.min, 2) + " <span>min</span></div>")
          .append("<div>" + this.leadingZeros(data.sec, 2) + " <span>sec</span></div>")
      }

    });
});
});
</script>

这是我桌子的布局:

<body>
<table id="timerTable">  
<tr id="20130425190000">
<div class="countdown-styled" style="width:200px;"></div>
</tr>
<tr id="20130416190000">
<div class="countdown-styled" style="width:200px;"></div>
</tr>
<tr id="20130424190000">
<div class="countdown-styled" style="width:200px;"></div>
</tr>

此代码同时为表中的每个倒计时设置相同的时间。 (即13 第3天 营业时间58 分钟24 秒9)任何想法?

编辑:如果要使用ID,那么它必须采用这种格式。这是从服务器动态设置的,并以此格式返回。这就是为什么我按照我的方式使用parseIntslice的原因。格式为:年/月/日/小时/分钟/秒(XXXXXXXXXXXXXX)

1 个答案:

答案 0 :(得分:2)

似乎你循环两次,同时使用$('tr [id]')和$('。countdown-styled')。

您只需将倒计时应用于一个特定的后代:

$this.find('.countdown-styled').countdown

对于记录,你的html也缺少单元格(td元素),我认为这只是一个复制错误。