javascript - 我想使用 for 循环重复一个函数,但 for 循环什么也不做
问题描述
我正在使用HTML
和CSS
编写游戏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 的 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>
推荐阅读
- python - 如何通过不在每个像素上绘制矩形来使我的代码更加优化?
- javascript - React 17:代码执行两次的问题
- javascript - NodeJS Node-Fetch Call Stripe 中的 JSON 错误
- sql - SCD 类型 2 - 处理日内变化?
- python - 从雪花中获取数据
- hadoop - hdfs-site.xml 环境变量
- nginx - NGINX 只允许来自某个域和某个 IP(同时)
- c# - 将 1 种测试方法关联到 2 个 azure 测试用例
- node.js - 如何将前端和后端验证添加到节点 js 用户身份验证项目?
- vba - Outook VBA:并非所有邮件项目都无法识别