0

我正在做一个项目,我需要在一个页面上显示几个拍卖的状态。每个项目都有不同的结束日期。我给每一行一个唯一的 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)

4

1 回答 1

2

您似乎循环了两次,$('tr[id]') 和 $('.countdown-styled')。

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

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

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

于 2013-04-12T22:11:16.667 回答