js循环变量问题
for(var i=1;i<=4;i++){
$("#ss" + i).change(function(){
alert(i+"");
});
}
当执行ss的onchange事件时alert(i);的值一致是5
求高手解决
------解决方案-------------------- for(var i=1;i<=4;i++){
$("#ss" + i).change(
(function(j) {
return function(){
alert(j+"");
}
})(i);
);
}
------解决方案--------------------因为你循环完毕,才去执行的change事件。可以参考这样写:
function change(id){
$("#ss" + id).change(function(){
alert(id+"");
});
}
然后在你的表单标签里面加事件并传递id,调用change函数
------解决方案--------------------应该是出现了典型的“闭包”问题,建议lz搜下“闭包”的原因,
for (var i = 1; i <= 4; i++) {
$("#ss" + i).bind("change", { param: i }, function (e) {
alert(e.data.param);
});
}
------解决方案--------------------