querySelector方法返回null

时间:2018-03-15 19:27:14

标签: javascript html

我的代码(简化):

HTML:

<!DOCTYPE html>
<head>
<title>Title</title>
<script type="text/javascript" src="main.js"></script>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body align="center">
<div id="container">
<h1>Title</h1>
</div>
</body>
</html>

JS:

const container = document.querySelector('#container');

for (i = 0; i < 16; i++) {
    for (let x = 0; x < 16; x++) {
        const cellSize = 512 / 16;
        const cell = document.createElement('div');

        cell.style.width = cellSize + 'px';
        cell.style.height = cellSize + 'px';
        container.appendChild(cell);
    }
};

控制台:

Uncaught TypeError: Cannot read property 'appendChild' of null

我在这里做错了什么?它可能只是我的浏览器(我使用的是Chrome)。是因为常量是在for循环中引用的吗?

2 个答案:

答案 0 :(得分:0)

您的文档尚未准备好。在将JavaScript应用到文档之前,您需要等待文档呈现。

因此,您应该在HTML之后调用您的脚本。

ReplaceWith:=IIf(TextBox1.Value="<T Agent>", "", TextBox1.Value)

答案 1 :(得分:-1)

您应该使用id来检索getElementById()。试试这个:

div

还要确保脚本在加载html后运行。