Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeError文档。getElementByID()。。。是空的吗?_Javascript_Html_Getelementbyid - Fatal编程技术网

Javascript TypeError文档。getElementByID()。。。是空的吗?

Javascript TypeError文档。getElementByID()。。。是空的吗?,javascript,html,getelementbyid,Javascript,Html,Getelementbyid,有人能告诉我为什么我会犯这个错误吗 TypeError:document.getElementById。。。第25行为空 我正在使用JavaScript,这就是我到目前为止在我的标记中所拥有的 下面是我的HTML里面我有这个 <table border="2" > <tr align="center"> <td><div id="00">0</div></td> <td><div id="01">0&

有人能告诉我为什么我会犯这个错误吗

TypeError:document.getElementById。。。第25行为空

我正在使用JavaScript,这就是我到目前为止在我的标记中所拥有的

下面是我的HTML里面我有这个

<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.getElementByIdi.j.innerHTML=initBoard[i][j]

您希望将数字转换为字符串并连接它们

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

你有i.j,它会获取i引用的数字,并要求它提供其j属性,该属性将返回未定义。

是的,同样的问题曾经发生在我身上。问题在于:

ID和名称标记必须以字母[a-Za-z]开头,后面可以是任意数量的字母、数字[0-9]、连字符、下划线、冒号和句点

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


另外-您的i.j方法不正确

请确保代码在文档完全加载后执行。差不多

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

正如其他海报所说,使用诸如cell+i+uj这样的东西也是一个好主意。我会加下划线,这样111就不会模棱两可了。

除了下面的答案之外,还要确保在onload处理程序中运行所有这些。如果过早运行,则尚未定义ID。@DrC:这是一个很好的观点。如果代码在元素呈现之前运行,将找不到任何东西。@DrC我认为这可能会发生,因为即使有下面的答案和我在ID中硬编码而不是使用I.j,我仍然会得到同样的结果。我可以这样做吗?我会写一个简短的回答。虽然HTML4确实不允许ID以数字开头,但HTML5确实允许。即使在不支持HTML5的旧浏览器中,DOM选择仍然可以工作。我不知道HTML5的事情-谢谢。我曾经遇到过一个使用ID的问题,但也许我正在做一些更复杂的事情,可能涉及jquery。
window.addEventListener("load", function() {
     <your current code>
},0);