javascript - 表格单元格未将其 ID 传递到我的函数参数中

标签 javascript html web-applications event-handling event-listener

我的小代码

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/

相关文章:

html - PCDATA 和 CDATA 究竟是什么?

c - 信号 CGI 输出在程序退出前完成

google-chrome - Chrome 更新后无法在 Google Apps Script 网络应用程序中下载文件

javascript - 如何在事先不知道属性名的情况下解析 JSON 数据?

html - 为什么 100vh 不能填满整个页面?

html - HTML 中的 Bootstrap col-xs-12 未占用全宽

java - Gradle 部署项目到 ear

javascript - HTML5 Canvas : Manipulating Individual Paths

Javascript 正则表达式表示年份

javascript - Extjs 3.4 -> 窗口不显示