0

我的 javascript 循环无法正常工作。我只得到$i.

$(function() {
    var $count = $('#count').val();
    for (var $i = 1; $i < $count; $i++) {
        var btnRemove = $('#removeImage' + $i);
        var profilepictureid = $('#profilePitcureID' + $i).val();
        btnRemove.click(function() {
            alert($i);
        });
    }
});​
4

1 回答 1

3

当您的click事件处理程序执行时,$i已达到其最终值 ( $count - 1)。您需要$i在循环的每次迭代中捕获 的值。$i您可以通过引入一个在每次迭代时“关闭” 的值的闭包来做到这一点:

for(var $i=1; $i<$count; $i++) {
    var btnRemove=$('#removeImage'+$i); 
    var profilepictureid = $('#profilePitcureID'+$i).val();

    (function ($i) {
        btnRemove.click(function(){
            alert($i);
        });
    }($i));
}       
于 2012-11-19T11:15:44.870 回答