Javascript TypeError文档。getElementByID()。。。是空的吗?
有人能告诉我为什么我会犯这个错误吗 TypeError:document.getElementById。。。第25行为空 我正在使用JavaScript,这就是我到目前为止在我的标记中所拥有的 下面是我的HTML里面我有这个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&
<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);