繁体   English   中英

TypeError document.getElementByID()…是否为null?

[英]TypeError document.getElementByID() … is null?

谁能告诉我为什么我会收到此错误?

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

当我尝试运行此命令时,我从上面得到了该错误。

我还尝试将“ ID”硬编码为'00''01' ,但它仍然给我同样的错误消息。

有人知道我在做什么错吗? 我到处环顾四周,到处都说基本相同的内容,这应该很容易,但我无法超越。

编辑:第25行是document.getElementById(ij).innerHTML = initBoard[i][j];

您想将数字转换为字符串并将其连接起来。

document.getElementById(i + "" + j).innerHTML = ...

您有ij ,它将采用i引用的数字,并要求它提供其j属性,该属性将返回undefined

是的-我曾经发生过同样的问题。 问题是:

ID和NAME令牌必须以字母([A-Za-z])开头,然后可以跟任意数量的字母,数字([0-9]),连字符(“-”),下划线(“ _”) ,冒号(“:”)和句点(“。”)。

因此,您必须替换分配ID的方式

另外-您对ij的处理方式不正确

确保代码在文档完全加载后执行。 就像是

window.addEventListener("load", function() {
     <your current code>
},0);

正如其他张贴者所说,使用“ cell” + i +“ _” + j之类的东西也是一个好主意。 我将下划线放在“ 111”不模糊的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM