有谁能告诉我为什么我会收到这个错误?
" TypeError:document.getElementById(...)为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>
当我尝试运行它时,我从上面得到了这个错误。
我还尝试过硬编码&#34; ID&#34;如'00'
或'01'
,它仍然给我相同的错误消息。
有谁知道我做错了什么?我到处都看了,到处都说基本相同的事情应该很容易,但是我无法理解这一点。
编辑:第25行是document.getElementById(i.j).innerHTML = initBoard[i][j];
答案 0 :(得分:3)
您希望将数字转换为字符串并将其连接起来。
document.getElementById(i + "" + j).innerHTML = ...
您有i.j
,它会使用i
引用的数字,并询问其j
属性,该属性将返回undefined
。
答案 1 :(得分:2)
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。
因此,您必须更换分配ID的方式
另外 - 你的i.j方法不正确
答案 2 :(得分:2)
确保在文档完全加载后执行代码。像
这样的东西window.addEventListener("load", function() {
<your current code>
},0);
正如其他海报所说,使用像“cell”+ i +“_”+ j这样的东西也是一个好主意。我把下划线放在一边,这样“111”就不含糊了。