2010-11-07 182 views
8
<select name="d1"> 
    <option value="dd">111</option> 
    <option value="dd">111111</option> 
</select> 
<select name="d2"> 
<option value="dd">2222</option> 
    <option value="dd">222222222222</option> 
</select> 

我有兩個選擇兩個使用jQuery如何選擇這兩jQuery選擇如何選擇器二元

$("select[name='d1']").change(function(){xxx}); 

這個代碼只可以選擇一個元素,任何一個可以給手,感謝

+0

在最壞的情況下,你總是可以使用'add'方法。 – 2010-11-07 04:56:07

回答

12

有幾種選擇。

  1. 選擇頁面上的所有選擇元素:

    $("form#formD select").change(function(){xxx}); 
    
  2. 僅選擇那些選擇元素:包含在一個形式中具有ID formD

    $("select").change(function(){xxx}); 
    
  3. 僅選擇那些選擇元素在類d(向每個select元素添加一個classHTML屬性):

    $("select.d").change(function(){xxx}); 
    
  4. 僅選擇那些選擇元素,其名稱/ ID以d

    $("select[name^=d]").change(function(){xxx}); 
    
  5. 選擇僅由ID具體命名的那些選擇元素(添加id HTML屬性到每個選擇元素):

    $("select#d1, select#d2").change(function(){xxx}); 
    
  6. 只選擇那些使用name專門命名的選擇元素致敬(我會盡量避免,因爲它的可讀性):

    $("select[name='d1'], select[name='d2']").change(function(){xxx}); 
    
+2

感謝您竊取所有答案 – 2010-11-07 05:08:28

+2

+1以顯示所有的方法。我會推薦選項3. – RPM1984 2010-11-07 05:09:53

+0

哦,等等,他也是。 +1撤回。 – RPM1984 2010-11-07 05:10:33

3
$("select[name='d1'],select[name='d2']").change(function(){xxx}); 
3

你可以選擇D1或D2:

$("select[name='d1'], select[name='d2']").change(function(){xxx}); 

但它會更優雅,如果您將它們分配給同一個班級,然後根據其選擇:

<select name="d1" class="d">...</select> 
<select name="d2" class="d">...</select> 

$("select.d").change(function(){xxx}); 
2

$("select[name^=d]") - 將返回所有select s的在d開頭的名字。這是小提琴:http://jsfiddle.net/KjURE/。這正是你要求的