无法解决“无法读取属性X为null”的错误

时间:2018-06-25 19:07:27

标签: javascript html google-chrome

我有一个index.html文件,

<html>
    <head>
        <script src="2-4.js"></script>
    </head>
</html>

和具有2-4.js文件的

var div,
    container = document.getElementById('container')
for (var i = 0; i < 5; i++) {
    div = document.createElement('div')
    div.onclick = function() {
        alert('This is box #' + i)
    }
container.appendChild('div')
}

它们在同一文件夹中。当我在Chrome中打开index.html并进行检查时,在控制台中看到“未捕获的TypeError:无法在2-4.js:11处读取null的'appendChild'属性”。我查找了一些涉及该错误的SO问题,但没有找到帮助。有人知道发生了什么吗?我运行程序错误吗?

1 个答案:

答案 0 :(得分:1)

我认为您正在尝试这样做:

<html>
<head>
</head>
<body><div id="container"></div></body>
<script>

var container = document.getElementById('container');
for (var i = 0; i < 5; i++) {
    var div = document.createElement('div');
    div.onclick = function() {
        alert('This is box #' + i);
    }
    container.appendChild(div);
}

</script>
</html>

基本上,该消息表明null(例如,没有对象引用)没有属性或方法“ appendChild”,这很明显,因为document.getElementById('container')将不返回任何内容,因为它不能找到这样的元素,仅仅是因为它不存在...