for(var i=1;i<=4;i++){
            $("#ss" + i).change(function(){
               alert(i+"");
           });
       }当执行ss的onchange事件时alert(i);的值一致是5
求高手解决

解决方案 »

  1.   

     for(var i=1;i<=4;i++){
                $("#ss" + i).change(
                 (function(j) {
                   return function(){
                   alert(j+"");
               }
                 })(i);
                );
           }
      

  2.   

    因为你循环完毕,才去执行的change事件。可以参考这样写:function change(id){
          $("#ss" + id).change(function(){
              alert(id+"");
          });
    }然后在你的表单标签里面加事件并传递id,调用change函数
      

  3.   

    应该是出现了典型的“闭包”问题,建议lz搜下“闭包”的原因,for (var i = 1; i <= 4; i++) {
                    $("#ss" + i).bind("change", { param: i }, function (e) {
                        alert(e.data.param);
                    });
                }
      

  4.   

    你的绑定方法 i已经循环完了,js 中的闭包。 楼上几位的方法都可以实现看你需要