Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
html表格中每一行的javascript倒计时_Javascript - Fatal编程技术网

html表格中每一行的javascript倒计时

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

上面是我的倒计时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() {
    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;
  }
}