2012-09-16 51 views
1

我有一些的DIV代表按鈕的結束時,所有的按鈕,隨後的ID結構:jQuery選擇的將ID在ID

Button_<id> 

實施例:

Button_54 

是否有一個如何將點擊偵聽器附加到所有按鈕並在偵聽器中獲取ID?我提出了以下解決方案,但我不認爲這是這樣做的方式......您有任何建議嗎?

$('[id$="Button_"]').click(function() { 
    var id = $(this).attr('id'); 
    var ButtonID = id.substring(id.lastIndexOf("Button_")); 
    //. 
    //. Do somthing which requires the ID 
    //. of this button, for instance an AJAX request 
    //. 
}); 
+1

最簡單的方法是讓所有按鈕他們自己的類,然後用它來應用處理程序。 –

+0

是的,我可以做到,但ID應該是唯一的,我只想知道一個好的實踐解決方案是什麼。 –

+0

他談論的課程不是ID的。一個普通的類來選擇按鈕。但你的代碼是好的... –

回答

1

您正在使用屬性結尾爲選擇,不選擇你的元素,你應該使用屬性開始有了選擇,而不是:

$('[id^="Button_"]').click(function() { 
    var num = this.id.match(/\d+/g).join(''); // 54 
    // .... 

}); 
+0

'.match'給出了一個數組,但是。 – pimvdb

+0

@pimvdb是的,謝謝。 – undefined

+0

另一種方法是使用原始代碼,但修改爲'... lastIndexOf(「_」)+ 1 ...',假設所有的ID都是相同的格式,唯一的位只會在最後一個下劃線之後。 – ClarkeyBoy

1

是的,這是可能的。



    $('[id^="button_"]').click(function() { 
     var id = $(this).attr('id'); 
     var ButtonID = id.split('_')[1]; 
     alert(ButtonID); 
    }); 

jsfiddle