2011-04-18 54 views
1

功能我有以下功能:調用基於ID jQuery中

$('#topic').change(function() 

它作用於這就是所謂的#topic的ID。我想使這個行爲在一個名爲

#topic_1 or #topic_2 or #topic_3 etc. 

是否有一個簡單的方法來使用通配符做這個jQuery?我怎樣才能提取數字1,2或3,並找出另一個元素的值標記爲key_1,key_2或key_3。我希望這對你有意義。

對不起這是一個基本的問題,但我完全新的jQuery的

+0

對不起。我稍微編輯了這個問題,你們都很快回復。我喜歡屬性的想法開始,但我怎麼才能找到_1或_2並添加這個來創建其他元素的新ID? – Hiroki 2011-04-18 09:03:15

+0

我認爲這會更好,如果你發佈這個新的問題...因爲evry已經根據初始requiremnt給出了答案..現在每個人都必須改變那裏的答案.. – Vivek 2011-04-18 09:05:14

回答

5

您可以使用id如果你喜歡(以下更多的選擇),使用"attribute starts with"選擇:

$('[id^="topic"]').change(function() { ... }); 

那選擇將匹配任何id開始與「主題」。一定要將參數(「主題」)放在引號中,這是(現在)需要的。

如果你有這些的短名單,你可以選擇簡單地直接列出來:

$('#topic1, #topic2, #topic3').change(function() { ... }); 

或者你可以選擇他們所共有的一些其他特徵。流行的選擇:

  • 他們class,使用class selector

    $('.theClass').change(...); 
    
  • 他們在DOM位置。例如,如果要在表單中的所有字段上觀看change事件,則可以從表單開始,並使用descendant selector(可能帶有限定符:input(與input,selecttextarea元素匹配),如下所示:

    $('#formId :input').change(...); 
    
  • 他們分享一些其他的屬性,使用"attribute equals" selector"attribute contains"選擇等

正如你所看到的,你有a lot to choose from,遠不止ID和班級。請注意,在大多數瀏覽器中,類選擇器將是最快的,但這隻對非常複雜的頁面非常重要,或者在查找選擇器lot。像往常一樣,在遇到問題時優化。

1

爲什麼不使用類選擇呢?給所有的元素稱爲「主題」 CSS類和修改代碼如下:

$('.topic').change(function() { }); 
0

使用類屬性..

$('.topic').change(function() { }); 
1

像這樣

$('input[id^="topic"]').val('news here!'); 

$(input[id^="topic"]).change(function(){ 

    //Do something 

}); 
0

使用類選擇是做它的方式參訪。但是,對於任意名稱,您也可以執行類似如下的操作:

 
for (i=0;i<blahblah;i++){
$("#topic_"+i).change(function() {}); }