我有几个 <span class="timer">342</span>
具有不同的值(秒)。
我想倒计时所有人,并认为我可以做类似的事情:
$('.timer').ready(function() {
timer = setInterval(function() {
sec = $('.timer').text();
$('.timer').text(--sec);
if (sec == 0) {
clearInterval(timer);
location.href = 'accounts.php';
}
}, 1000);
});
错误是,Javascript因为.timer
或其他东西的多个对象而感到困惑,并为跨度生成奇怪的值。
当第一个计时器达到零时,它应该重新加载。使用jQuery。 跨度数量不固定。 我真的很想保持简单,不要使用额外的插件或大脚本文件。
答案 0 :(得分:1)
.ready
仅用于document
,并标记完全解析DOM的时间点。在此函数中,this
指的是文档。我会用另一种方式写出来:
$(document).ready(function() {
timer = setInterval(function() {
$('.timer').each(function(){
var $this = $(this);
var countdown = parseInt($this.text()) - 1;
$this.text(countdown);
if (countdown == 0) {
clearInterval(timer);
location.href = 'accounts.php';
}
});
}, 1000);
});
重要的:
.each
遍历每个计时器parseInt
从字符串中获取整数这是一个有效的 Example-Fiddle 。
答案 1 :(得分:1)
我自己得到了它。 这确实有用(fiddle):
timer = setInterval(function() {
$('.timer').each(function(index, el) {
sec = $(el).text();
$(el).text(--sec);
if (sec == 0) {
location.href = 'accounts.php';
}
});
}, 1000);