数组未捕获的TypeError

时间:2019-05-29 01:35:35

标签: javascript

我是使用Java Script开发简单的游戏的初学者。每个游戏字段都在“字段”数组中定义。我希望有一个“ for”循环,单击时可将字段中的值更改为“ X”。

这是我正在使用的代码,它给我以下错误消息:未捕获的TypeError:无法设置未定义的属性'textContent'     在HTMLTableCellElement.fields..onclick 处。控制台日志工作正常。

for(var b=0; b < fields.length; b++){
    fields[b].onclick = function(){
    console.log("content changed")
    fields[b].textContent= 'X'}
};

我不明白为什么它不起作用,尽管它完全按预期工作并将每个单元格的值更改为“ g”:

for(var b=0; b < fields.length; b++){
    fields[b].textContent ="g"
};

当我使用数组中的一个字段时,它也可以正常工作。

fields[3].onclick = function(){
console.log("content changed")
fields[3].textContent= 'X'} 

为什么我的代码给我错误消息?

1 个答案:

答案 0 :(得分:1)

当您尝试设置eventlistener和textContent时,索引my_list[-1]将解析为循环末尾的值。

尝试用“ let”代替“ var”(let可以为我工作)。

b