2013-06-20 187 views
0

我有元件(图像按钮)与相同的ID ... FOT例如处理元件:JQuery的具有相同ID

<input type="image" id="butt" src="zzz.jp" /> 
<input type="image" id="butt" src="zzz.jp" /> 
<input type="image" id="butt" src="zzz.jp" /> 

,并希望undarstend至极按钮被点击的jQuery像:

$("#butt").live('click', function(){ 
    var i =''; 
    alert('button '+i+' clicked'); 
}); 

其中变量'我'必须是索引或点击数的按钮。

如何获得这个按钮被点击?

+4

ID的意思是唯一的。我相信,一旦jQuery遇到你正在寻找的元素的ID,就会停止遍历DOM,所以它基本上会忽略DOM树下面的相同ID的其他元素。 – zakangelle

+1

只需将ID更改为类:将'id ='更改为'class =',并为每个分配一个唯一的ID。然后,点击一个输入可以触发该事件,并且您可以获得单击的元素的ID。 – gibberish

回答

3

首先您应该使用class而不是id,因为ID必须是唯一的

然后你可以使用jquery.index function为获得该按钮被点击

$(".captcha_dwn").live('click', function(){ 
    var index=$(this).index(); 
    alert('button '+index+' clicked'); 
}); 

由于jQuery的v 1.9.live()已被删除,你应该使用.on(),而不是像的,

$(".captcha_dwn").on('click', function(){ 
    var index=$(this).index(); 
    alert('button '+index+' clicked'); 
}); 

文档http://api.jquery.com/index

1

继续我的com彪以上,这里的另一种方式做罗汉库马尔建议:

这里是一个live jsFiddle example

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 

     <script type="text/javascript"> 
      $(document).ready(function() { 

       $('.butn').click(function() { 
        var bid = $(this).attr('id'); 
        alert(bid); 
       }); 

      }); //END $(document).ready() 

     </script> 
    </head> 
<body> 

    <input type="image" class="butn" id="b1" src="zzz.jp" /> 
    <input type="image" class="butn" id="b2" src="zzz.jp" /> 
    <input type="image" class="butn" id="b3" src="zzz.jp" /> 

</body> 
</html>