我想重复使用for循环的功能,但是for循环不执行任何操作

时间:2019-04-07 17:32:24

标签: javascript

我正在使用HTMLCSSJavaScript编写游戏。而且我创建了一个函数,该函数在HTML代码中对p标签进行倒计时,但是每次执行该功能时,它只会减去一个数字,因此我需要执行大量时间,并且当倒计时结束时,游戏结束会归零。

我试图放入for循环,但是for循环什么也不做。

我的JavaScript函数:

function time() {
    for (i=0;i<30;i++) {
        var enem = document.getElementById("enem");
        var timer = document.getElementById("timer1").innerHTML;
        var timer = parseInt(timer);
        var actime = timer - 1;
        sleep(1000).then(() => {
        timer = document.getElementById("timer1").innerHTML = actime;
        if (timer===0) {
            enem.parentNode.removeChild(enem);
            window.location.href = ('success.html');
        }
        })
        }
}

除time()函数的结果外,我将每1秒30次更改p标签,但仅更改一次。

2 个答案:

答案 0 :(得分:1)

您应该为此使用Javascript的setInterval函数。

(function(){
var n = 30;
var tm = setInterval(countDown,1000);
var enem = document.getElementById("enem");
var timer = document.getElementById("timer1");
function countDown(){
   n--;
   if(n == 0){
      clearInterval(tm);
      enem.parentNode.removeChild(enem);
      window.location.href = ('success.html');
   }
   timer.innerHTML = n;
}})();
<p id="enem"></p>
<p id="timer1"></p>

答案 1 :(得分:0)

您正在寻找setInterval(),这是Javascript在每个特定时间段内执行特定操作的方式。

您发布的代码由于Javascript的非阻塞性质而无法使用,它将安排睡眠函数调用,并与下一个循环一起移动。