我正在开展一个项目,我需要在一个页面上显示几个拍卖的状态。每个项目都有不同的结束日期。我给每一行一个唯一的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,那么它必须采用这种格式。这是从服务器动态设置的,并以此格式返回。这就是为什么我按照我的方式使用parseInt
和slice
的原因。格式为:年/月/日/小时/分钟/秒(XXXXXXXXXXXXXX)
答案 0 :(得分:2)
似乎你循环两次,同时使用$('tr [id]')和$('。countdown-styled')。
您只需将倒计时应用于一个特定的后代:
$this.find('.countdown-styled').countdown
对于记录,你的html也缺少单元格(td元素),我认为这只是一个复制错误。