我的情况:
var tds = document.getElementsByTagName("td");
for(i=0;i<tds.length;i++)
{
tds[i].onclick = function()
{
alert(i);
};
}
预期结果:提醒TD数量。
但是,如果有6个TD,则返回的值将始终是“ i”的最后一个值。 (6)
添加到函数时,如何使“ i”值保持其值?
谢谢!
http://jsfiddle.net/nuKEK/11/
最佳答案
您需要关闭以捕获i
值。像这样
function createFunction(i){
return function(){
alert(i);
};
}
var tds = document.getElementsByTagName("td");
for(i=0;i<tds.length;i++){
tds[i].onclick = createFunction(i);
}
演示:http://jsfiddle.net/nuKEK/12/
关于javascript - 向元素添加功能时保持“i”值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19690383/