【发布时间】:2012-11-26 04:53:47
【问题描述】:
谁能告诉我为什么会出现这个错误?
"TypeError: document.getElementById(...) is null @ line:25"
我正在使用 JavaScript,这就是我目前在 <script> 标签中的内容...
var initBoard = new Array(new Array(0, 0, 0, 1),
new Array(0, 0, 0, 0),
new Array(3, 0, 0, 0),
new Array(0, 0, 2, 0)
);
function insertData(){
for(var i = 0; i < 4; i++){
for(var j = 0; j <4; j++){
document.getElementById(i.j).innerHTML = initBoard[i][j];
}
}
}
在我的 HTML <body> 的下面我有这个....
<table border="2" >
<tr align="center">
<td><div id="00">0</div></td>
<td><div id="01">0</div></td>
<td><div id="02">0</div></td>
<td><div id="03">0</div></td>
</tr>
<tr align="center">
<td><div id="10">0</div></td>
<td><div id="11">0</div></td>
<td><div id="12">0</div></td>
<td><div id="13">0</div></td>
</tr>
<tr align="center">
<td><div id="20">0</div></td>
<td><div id="21">0</div></td>
<td><div id="22">0</div></td>
<td><div id="23">0</div></td>
</tr>
<tr align="center">
<td><div id="30">0</div></td>
<td><div id="31">0</div></td>
<td><div id="32">0</div></td>
<td><div id="33">0</div></td>
</tr>
当我尝试运行它时,我从上面得到了那个错误。
我还尝试将“ID”硬编码为'00' 或'01',但它仍然给我同样的错误信息。
有谁知道我做错了什么?我到处看了看,到处都在说基本相同的事情,应该很容易,但我无法超越。
编辑:第 25 行是 document.getElementById(i.j).innerHTML = initBoard[i][j];
【问题讨论】:
-
除了下面的答案之外,请确保您在 onload 处理程序中运行所有这些。如果运行得太早,则 ID 尚未定义。
-
@DrC:说得很好。如果代码在元素渲染之前运行,则不会找到任何内容。
-
@DrC 我认为这可能正在发生,因为即使使用下面的答案并且我在 ID 中硬编码而不是使用 i.j,我仍然会得到同样的结果。我可以这样做吗?
-
我会写一个简短的答案。
标签: javascript html getelementbyid