ste*_*fan 2 javascript variables
我试图在表格中制作一个单元格,当我点击它时告诉我它的数字.
for(var j = 0; j < 8; j++){
var cell = row.insertCell(j);
cell.name = j;
cell.onclick=function(){alert(cell.name)};
}
Run Code Online (Sandbox Code Playgroud)
但是,这会打印每个单元格的数字8.如何保存jin 的值cell.name,而不是仅仅指向变量j?
谢谢.
重要提示:所有JavaScript开发人员都应该知道这一点.它会导致很难找到各种奇怪的错误.
这是JavaScript新手的常见错误.我之前犯了同样的错误.
不为每次迭代创建循环内的函数.它是具有相同闭包范围的相同的一个函数对象.因此,您的单元格将具有完全相同的onclick回调.
我的建议是永远不要在循环内创建一个函数.相反,创建并调用一个返回回调函数并将其分配给onclick的函数.
for (var j = 0; j < 8; j++) {
var cell = row.insertCell(j);
cell.name = j;
cell.onclick = createOnClick(cell);
}
function createOnClick(cell) {
return function () {
// do whatever you want to do with cell
};
}
Run Code Online (Sandbox Code Playgroud)