首页 > 解决方案 > 表格单元格没有将它们的 ID 传递给我的函数参数

问题描述

我的小代码

https://codepen.io/kymed/pen/wxawJX

我正在尝试做的事情

我现在正在学习 javascript,初学者网络开发人员。我正在通过构建一个简单的井字游戏应用程序来练习。tic tac toe 表中的每个单元格都有一个从 0 到 8 的 id,当我尝试将该 id 附加到 tileSelected() 函数时(用于单击图块时),每个单元格的所有 onclick 事件都保存最后一个的 id细胞。(JS 代码 7 至 9)

for(i = 0; i < 9; i++) {
document.getElementById(i.toString()).onclick = function() { tileSelected(i.toString()); }
}

我试过的

我之前多次更改该代码以将 ID 传递给 onclick 事件的该函数,尽管它每次都有相同的问题

那么这里的错误是什么?我究竟做错了什么?

标签: javascripthtmlweb-applicationsevent-handlingevent-listener

解决方案


正如您声明的for循环一样,i它是一个全局变量。当这些循环结束时,i它的值为 9。当回调函数被调用时,它的值就是 9。如果您使用 将变量范围限定为循环for (let i = 0; i < 9; i++),您会看到改进。


推荐阅读