我正在处理我的 HTML 和 JavaScript 项目。
当我运行我的代码时,我有一个错误是
“无法读取 null 的属性‘appendChild’”。
我试图解决这个问题,我找到了here,但我无法理解,因为我是编程初学者,而且我不擅长英语。
这是我的代码:
<html>
<head>
<script language="javascript">
var wordlist = [ "a", "bb", "ccc", "dddd" ];
var rannum = Math.floor(Math.random() * wordlist.length);
var x = document.createElement("INPUT");
for(i = 0; i < wordlist[rannum].length; i++) {
x.setAttribute("type", "text");
x.setAttribute("value", "");
document.body.appendChild(x);
}
</script>
</head>
<body>
</body>
</html>
你能帮我解决这个问题吗?
先感谢您。
您的脚本在 DOM 完全加载之前运行。有几种方法可以解决此问题:
body
.属性 延迟
此布尔属性设置为向浏览器指示脚本将在解析文档之后执行,但在触发 DOMContentLoaded 之前执行。
通过在循环外创建输入,您将在循环中的每次迭代中引用相同的元素。您必须在循环内创建元素
<html>
<head>
<script language="javascript" defer>
var wordlist = [ "a", "bb", "ccc", "dddd" ];
var rannum = Math.floor(Math.random() * wordlist.length);
for(i = 0; i < wordlist[rannum].length; i++) {
var x = document.createElement("INPUT");
x.setAttribute("type", "text");
x.setAttribute("value", "");
document.body.appendChild(x);
}
</script>
</head>
<body>
</body>
</html>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句