2010-11-07 143 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/。这正是你要求的