2013-06-20 215 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>