html表格中每一行的javascript倒计时
上面是我的倒计时javascript代码。这可以正常工作,但不会在0h:0m:0s时间后停止。它开始以负数计数 下面是一个适用于我的代码的修改版本:html表格中每一行的javascript倒计时,javascript,Javascript,上面是我的倒计时javascript代码。这可以正常工作,但不会在0h:0m:0s时间后停止。它开始以负数计数 下面是一个适用于我的代码的修改版本: var count = Number(sessionStorage.getItem('count')) || 3600; var counter = setInterval(timer, 1000); //1000 will run it every 1 second function timer() { cou
var count = Number(sessionStorage.getItem('count')) || 3600;
var counter = setInterval(timer, 1000); //1000 will run it every 1 second
function timer() {
count = count - 1;
sessionStorage.setItem('count', count)
if (count == -1) {
clearInterval(counter);
return;
}
var seconds = count % 60;
var minutes = Math.floor(count / 60);
var hours = Math.floor(minutes / 60);
minutes %= 60;
hours %= 60;
var time_str = hours + ":h " + minutes + ":m " + seconds + ":s";
//document.cookie = 'time_str = hours + ":h " + minutes + ":m " + seconds + ":s"; expires=Thu, 26 March 20:47:11 UTC; path=/'
Array.prototype.forEach.call(document.querySelectorAll('.timer'), function (el ) { el.innerHTML = time_str; });
}
演示:适合我。只需在另一个窗口中运行代码,减去Array.forEach位…我将此计时器用于多行,这就是为什么我使用arrayle let me try with Array:我认为这不会导致任何问题,因为这些行在清除间隔后执行,只是指出,我用初始值5测试它,当它计数到0后,它停止运行。我唯一没有保留的部分是Array.forEach位,因为我没有你的HTML;我尝试不使用array.forEach,但之后计时器不会出现。这是我的html代码。这里的脚本是:这是更好的工作方式,但计时器在最后一秒停止,并在刷新页面时重置:计时器在刷新页面时重置,因为为了清晰起见,我删除了localStorage代码。我只是想告诉你如何防止计时器计数为负数,因为你最初的问题是关于。
var count = 5;
var counter = setInterval(hockeytimer, 1000);
function hockeytimer() {
count = count - 1;
sessionStorage.setItem('count', count);
if (count == -1) {
clearInterval(counter);
return;
}
var seconds = count % 60;
var minutes = Math.floor(count / 60);
var hours = Math.floor(minutes / 60);
minutes %= 60;
hours %= 60;
if (hours === 0 && minutes === 0 && seconds === 0 ) {
var table = document.getElementById("hockeyt");
while (table.rows.length > 0 ) {
table.deleteRow();
}
}
var time_str = hours + ":h " + minutes + ":m " + seconds + ":s";
var timerCells = document.querySelectorAll('.hockeytimer');
for (var i = 0; i < timerCells.length; i++) {
var timerCell = timerCells[i];
timerCell.innerHTML = time_str;
}
}