我用JavaScript制作了Knight’s Tour个游戏.您可以尝试here.(特别是用于重现该错误)
我在读取时遇到很多麻烦的错误
Uncaught TypeError: Cannot read property ‘innerHTML’ of undefined
但我不确定为什么未定义.我有一张桌子,上面放着64个格子(制作棋盘).它们都是空旷的
...
这是页面上的唯一表.我使用javascript检索所有td元素,并通过它们迭代添加id,类,背景色和onclick eventListeners来进行游戏.
var tds;
window.onload = function() {
tds = document.getElementsByTagName("td");
for (var i = 0; i < tds.length; i++) {
if (typeof window.addEventListener === 'function') {
(function (td) {
...
td.addEventListener('click', function() {
...
似乎有几个不同的单元格反复发生此错误.有时我可以让单个单元格产生错误,而其他时候则无法.一个可重复的示例是先移至最下面一行,然后移至最后一个单元格,然后尝试将其向上移到该单元格的两个上方,然后从侧面向右移.
我经常在onclick内阅读innerHTML属性.我指的是td元素的全局tds数组.这基本上是我访问它们的所有形式的信息.
if (tds[cell].innerHTML === "") {
if (tds[n].innerHTML === "?") {
tds[cell].innerHTML = "?";
tds[target].innerHTML = "?";
td.innerHTML = "?";
我真的以为我已经弄清楚了当我在reading about时使用var声明变量与不使用它之间的区别,但是我无法找出导致此错误的单个var.任何帮助,将不胜感激.