【发布时间】:2022-08-24 00:13:44
【问题描述】:
html:
<!DOCTYPE html>
<html>
<head>
<script src=\"plm.js\"></script>
</head>
<body>
<h1 id=\"element\">number</h1>
<button onclick=\"bruh()\">Add Num</button>
</body>
</html>
js
let nr = 0
let change = document.getElementById(\"element\")
function bruh(){
nr = nr + 1
change.innerText = nr
}
我收到此错误 \"plm.js:5 Uncaught TypeError: Cannot set properties of null (setting \'innerText\')
我知道如果我写例如
document.getElementById(element).innerText = nr 它可以工作,但是当我使用 replit 编写代码时,它可以将它放在一个变量中,但在 vscode 上是不一样的
-
change在脚本运行时未定义,因为当时该元素不在 DOM 中。将script标记移动到body的末尾。 -
或使用defer
-
将这一行
let change = document.getElementById(\"element\")移动到 bruh() 中,使其成为函数的第一个语句。
标签: javascript html innertext