点击事件时的Javascript表格单元格?
我试图制作一个游戏板,在每个单元格上都有点击功能,但每次我点击一个单元格,唯一受影响的就是最后一个单元格。 我希望能在这方面得到一些帮助。 这是我的表格代码:点击事件时的Javascript表格单元格?,javascript,Javascript,我试图制作一个游戏板,在每个单元格上都有点击功能,但每次我点击一个单元格,唯一受影响的就是最后一个单元格。 我希望能在这方面得到一些帮助。 这是我的表格代码: var board = document.getElementById("board"); var NUM_ROWS = 6; var NUM_COLS = 6; for (row = 0; row < NUM_ROWS; row++) { var tr = document.createElement("tr"); for
var board = document.getElementById("board");
var NUM_ROWS = 6;
var NUM_COLS = 6;
for (row = 0; row < NUM_ROWS; row++) {
var tr = document.createElement("tr");
for (col = 0; col < NUM_COLS; col++) {
var td = document.createElement("td");
var img = document.createElement("img");
img.src = 'images/image0.png';
td.appendChild(img);
td.addEventListener("click", function() {
img.src = 'images/image1.png';
});
tr.appendChild(td);
}
board.appendChild(tr);
}
var board=document.getElementById(“board”);
var NUM_ROWS=6;
var NUM_COLS=6;
对于(行=0;行
需要首先使用document.body.childNodes[0]指向img
child代码>
td.addEventListener("click", function() {
var img = this.childNodes[0];
img.src = 'images/image1.png';//use this not img
});
解决方案:
var board=document.getElementById(“board”);
var NUM_ROWS=6;
var NUM_COLS=6;
对于(行=0;行
它适用于我,你的浏览器是什么,我的浏览器是chrome,你在控制台(F12)中看到了什么?我也在使用chrome。控制台中没有出现任何问题。我只是不明白为什么唯一一个正在改变的细胞是最后一个。我只需要它,这样我选择的单元格就可以更改。如果img是td的唯一子项,您必须将img放入closure中,请执行以下操作:td.addEventListener(“单击”,function(){td.childNodes[0].src='images/image1.png';})代码>你在闭包中的意思是什么?哈哈,你正在更改TDC的src。当我尝试此操作时,单击不起作用。请尝试编辑的答案。你必须先指向child的img。@bormat请参阅编辑的答案。@swen请参阅编辑的答案。