我的情况:

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/

10-09 17:56