首页 > 解决方案 > 我想使用 for 循环重复一个函数,但 for 循环什么也不做

问题描述

我正在使用HTMLCSS编写游戏JavaScript。而且我已经创建了一个函数,可以在 HTML 代码中对 p-tag 进行倒计时,但每次执行该函数时它只减去一个数字,所以我需要大量执行这个函数,并且当倒计时为零时游戏结束。

我试图放入一个 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-tag,但它只更改一次。

标签: javascript

解决方案


您应该为此使用 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>


推荐阅读