一个HTML元素的多个选择器的短语法

时间:2014-01-17 10:35:41

标签: javascript jquery

我有以下代码:

<form id="form">
  <input type="checkbox" name="foo" />
  <input type="checkbox" name="bar" />
</form>

<form>
  <input type="checkbox" name="foo">
  <input type="checkbox" name="bar">
</form>

这个jQuery:

$(document).ready(function(){

  $('#form input[name=foo], input[name=bar]').change(function (){

    alert('foo');

  });

});

现在,如果我查看#form foo,&#39; foo&#39;将显示。如果我选中另一个复选框&#34; foo&#34;,而不是通过&#39; bar&#39;复选框。

我想要的是,只有在ID&#39;形式的表单中才会识别出所采取的行动。我可以通过将此行修改为:

来实现
$('#form input[name=foo], #form input[name=bar]').change(function (){

我只是想知道是否有短暂的&#39;语法可能性?

祝你好运

4 个答案:

答案 0 :(得分:1)

嗯,不是很短,但你可以避免两次使用#form

$('#form').find('input[name=foo], input[name=bar]').change(function () {

略短:

$('#form input').filter('[name=foo], [name=bar]').change(function () {

答案 1 :(得分:1)

如果我是你,我会为他们分配相同的类并为这个类应用jquery:

$('#form .classname').change(function (){

    alert('foo');

  });

答案 2 :(得分:0)

您可以使用选择#form,然后在元素上使用find

示例:

  

$(document).ready(function(){

$('#form').find('input[name=foo], input[name=bar]').change(function () {

    alert('foo');
});
 });

Fiddler:http://jsfiddle.net/5LH7G/

文档查找:

  

获取当前匹配组中每个元素的后代   元素,由选择器,jQuery对象或元素过滤。

答案 3 :(得分:0)

您可以按属性值使用选择器:

$('form [name=foo], form [name=bar]').change(function (){
    alert('foo');
  });