javascript - 表格单元格没有将它们的 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 事件的该函数,尽管它每次都有相同的问题
那么这里的错误是什么?我究竟做错了什么?
解决方案
正如您声明的for
循环一样,i
它是一个全局变量。当这些循环结束时,i
它的值为 9。当回调函数被调用时,它的值就是 9。如果您使用 将变量范围限定为循环for (let i = 0; i < 9; i++)
,您会看到改进。
推荐阅读
- reactjs - 我正在尝试将我的复选框项目添加到状态数组并在未选中后将其删除-React useState
- javascript - 拥有多个 video.js javascript 视频播放器实例
- ios - 如何确定 ARObjectAnchor 已从场景中移除?
- python - 使用 pytesseract 执行 OCR 时出错
- reactjs - 动态 Google Parner 徽标未在生产中加载(构建)
- unity3d - Unity如何启动协程OnApplicationQuit?
- r - 使用 tidyverse 的轴心来生成长格式
- android - 与服务器通信以进行第二次请求的证书路径问题
- excel - Excel VBA 将多个工作表从一个范围保存到一个 PDF
- php - 如何在 json 中显示结果到 php