我的小代码
https://codepen.io/kymed/pen/wxawJX
我正在尝试做什么
我现在正在学习 javascript,初学者 Web 开发人员。我正在通过构建一个简单的井字棋应用程序来练习。井字游戏表中的每个单元格都有一个从 0 到 8 的 id,当我尝试将该 id 附加到tileSelected() 函数时(单击图 block 时),每个单元格的所有 onclick 事件都保存最后一个单元格的 id细胞。 (JS代码7到9)
for(i = 0; i < 9; i++) {
document.getElementById(i.toString()).onclick = function() { tileSelected(i.toString()); }
}
我尝试过的
我之前多次更改了该代码,将 ID 传递到 onclick 事件的该函数中,尽管每次都有相同的问题
那么这里的错误是什么?我做错了什么?
最佳答案
正如您声明的 for
循环,i
是一个全局变量。当这些循环完成时,i
值为 9。调用回调函数时会看到该值 9。如果使用 for (let i = 0; i < 9; i++)
将变量范围限定为循环,您会看到改进。
关于javascript - 表格单元格未将其 ID 传递到我的函数参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51297248/