Javascript 我怎样才能解决这个问题;无法读取属性';追加儿童';是否为空;?

Javascript 我怎样才能解决这个问题;无法读取属性';追加儿童';是否为空;?,javascript,html,Javascript,Html,我正在做我的HTML和JavaScript项目 当我运行我的代码时,我有一个错误 “无法读取null的属性'appendChild'。” 我试图解决这个问题,我发现了,但我不能理解,因为我是编程新手,英语不好 这是我的密码: <html> <head> <script language="javascript"> var wordlist = [ "a", "bb", "ccc", "dddd" ]; var rannu

我正在做我的HTML和JavaScript项目

当我运行我的代码时,我有一个错误

“无法读取null的属性'appendChild'。”

我试图解决这个问题,我发现了,但我不能理解,因为我是编程新手,英语不好

这是我的密码:

<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>

var wordlist=[“a”、“bb”、“ccc”、“dddd”];
var rannum=Math.floor(Math.random()*wordlist.length);
var x=document.createElement(“输入”);
对于(i=0;i
你能帮我解决这个问题吗


提前感谢您。

在DOM完全加载之前,您的脚本正在运行。有几种方法可以解决此问题:

  • 可以在脚本标记中指定属性
  • 您可以使用事件包装代码,该事件在初始HTML文档完全加载和解析后触发
  • 您可以将脚本放在
    正文的末尾
  • 属性

    此布尔属性设置为向浏览器指示脚本将在解析文档之后、但在触发DOMContentLoaded之前执行

    通过在循环外部创建输入,您在循环的每个迭代中都引用了相同的元素。必须在循环内创建元素

    
    var wordlist=[“a”、“bb”、“ccc”、“dddd”];
    var rannum=Math.floor(Math.random()*wordlist.length);
    对于(i=0;i
    在DOM完全加载之前,脚本正在运行。有几种方法可以解决此问题:

  • 可以在脚本标记中指定属性
  • 您可以使用事件包装代码,该事件在初始HTML文档完全加载和解析后触发
  • 您可以将脚本放在
    正文的末尾
  • 属性

    此布尔属性设置为向浏览器指示脚本将在解析文档之后、但在触发DOMContentLoaded之前执行

    通过在循环外部创建输入,您在循环的每个迭代中都引用了相同的元素。必须在循环内创建元素

    
    var wordlist=[“a”、“bb”、“ccc”、“dddd”];
    var rannum=Math.floor(Math.random()*wordlist.length);
    对于(i=0;i
    也许我遗漏了什么,但小提琴对我来说很有用。预期的行为是什么?试试这个:var wordlist=[“a”、“bb”、“ccc”、“dddd”];var rannum=Math.floor(Math.random()*wordlist.length);var x=document.createElement(“输入”);对于(i=0;i上编码
    吗?是的,您也可以使用的
    延迟属性。@Gyumeijie使用延迟属性是什么意思?可能我遗漏了什么,但小提琴对我有用。预期的行为是什么?试试这个:var wordlist=[“a”、“bb”、“ccc”、“dddd”];var rannum=Math.floor(Math.random()*wordlist.length);var x=document.createElement(“输入”);对于(i=0;i
    上编码
    吗?是的,您也可以使用的
    延迟属性。@Gyumeijie使用延迟属性是什么意思?谢谢。但是当我复制你的代码,粘贴它,然后运行我的代码时,它就不起作用了。它适用于代码段,但不适用于我的代码。我不知道是什么问题。@HoseongJeon,因为我们看不到您的实际代码,所以我们不能做太多。我们只能根据您在此处发布的代码尝试找到解决方案……谢谢。@HoseongJeon,注意到评论,我已经更新了答案……请check@HoseongJeon)谢谢你。但是当我复制你的代码,粘贴它,然后运行我的代码时,它就不起作用了。它适用于代码段,但不适用于我的代码。我不知道是什么问题。@HoseongJeon,因为我们看不到您的实际代码,所以我们不能做太多。我们只能根据您在此处发布的代码尝试找到解决方案……谢谢。@HoseongJeon,注意到评论,我已经更新了答案……请check@HoseongJeon,非常欢迎您……)