+ -
当前位置:首页 → 问答吧 → for 循环绑定click问题

for 循环绑定click问题

时间:2009-06-30

来源:互联网

为什么每个输出的都是5啊?怎么让点第一个弹出1,第二个弹出2……?

<input type="button" id="button1" value="button1" />
<input type="button" id="button2" value="button2" />
<input type="button" id="button3" value="button3" />
<input type="button" id="button4" value="button4" />
<script type="text/javascript">
for(var i=1;i<=4;i++){
    $("#button" + i).click(function(){
         alert(i)
         return false;
    });
}
</script>

作者: hangdudu   发布时间: 2009-06-30

用each函数

或者取自己的id的最后一位

作者: keakon   发布时间: 2009-06-30

参考这个
$("img").each(function(i){
   this.src = "test" + i + ".jpg";
});

作者: jaway   发布时间: 2009-06-30

for(var i=1;i<=4;i++){
    $("#button" + i).click(function(){
         var j=i;
         alert(j);
         return false;
    });
}
这样试试看

作者: shawphy   发布时间: 2009-07-04

code应该没有大的问题。 需要注意的是: for循环完毕了以后,"i" 的值变成了5.
而且, Click button的时间,肯定是在for循环执行完毕了以后。
所以,每次的值都是5.
你或以用 Alert(this.value) 来代替 alert(i);

作者: clsoft2002   发布时间: 2009-07-07

两种方式
一种改你的为
for(var i=1;i<=4;i++){
    $("#button" + i).click(function(j){
         return function(){
             alert(j)
             return false;
        }
    }(i));
}
一种
$('input').click(function(){
    alert(this.value.match(/\d/))
})2008

作者: campaign   发布时间: 2009-07-07

js里
if ( window.location.href以"a.html"结尾  ){
  do1();
}else if (...){do2() }
else if .....

作者: kidfang   发布时间: 2009-07-09

闭包...这个概念也不是很明白...不过可以解决你现在的问题...

参考下这个文章

http://zhouyrt.javaeye.com/blog/250073

作者: jamix   发布时间: 2009-07-09

热门下载

更多