【发布时间】:2021-06-26 19:45:30
【问题描述】:
有谁知道如何做到这一点,所以每十秒钟饥饿就会减少一。我最大的问题 有的是它根本不会表现出饥饿感。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="styles/style.css" />
<title>fun</title>
</head>
<body>
<script>
var health = 5;
var hunger = 10;
function task(i) {
setTimeout(() {
hunger -= 1;
}, 1000 * i);
document.write("<b>" + hunger + "</b>");
document.getElementById('hunger-div').innerHTML = hunger;
}
for (let i = 0; i < 10; i++) {
task(i);
}
</script>
</body>
</html>
【问题讨论】:
-
如果要在超时回调中更改 DOM,则必须将更改 DOM 的代码放入超时回调中
-
您的 Javascript 中有语法错误。
setTimeout(() {必须是setTimeout(()=>{检查浏览器开发工具的控制台(Windows 上的 F12)。此外,当您在流关闭后使用document.write时(就像您所做的那样),它会替换您的整个文档。接下来你没有id="hunger-div"的元素。 -
另外,我不知道这是否是完整的代码 sn-p 但您没有 ID 为
hunger-div的元素,因此您对此“元素”的更改不会做任何事情除了导致错误。
标签: javascript html