Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery/JavaScript选择器或||_Javascript_Jquery_Operators_Css Selectors - Fatal编程技术网

jQuery/JavaScript选择器或||

jQuery/JavaScript选择器或||,javascript,jquery,operators,css-selectors,Javascript,Jquery,Operators,Css Selectors,可能重复: 我有这个 $('input:radio[name=foo]').change(function() { blah(); }); $('input:radio[name=bar]').change(function() { blah(); }); 我可以这样做吗 $('input:radio[name=foo||bar]').change(function() { blah(); }); 如果我有另一个呢 $('input:radio[name=foo|

可能重复:

我有这个

$('input:radio[name=foo]').change(function() {
    blah();
});

$('input:radio[name=bar]').change(function() {
    blah();
});
我可以这样做吗

$('input:radio[name=foo||bar]').change(function() {
    blah();
});
如果我有另一个呢

$('input:radio[name=foo||bar||foobar]').change(function() {
    blah();
});
我不能使用理想的类,因为这是一个自定义框架(不是我的) 生成覆盖我的类的HTML。此外,没有可用的id选择器 只是名称属性。我想我一直在做独立的功能,但我想提出一个问题,看看是否有人能在这个问题上跳出框框思考

注意:这个项目使用jQuery1.3.2,我现在还不能升级。在你说什么之前,是的,我支持你升级…

jQuery的
$()
函数使用CSS选择器(几乎全部加上一些)。它们的语法与JavaScript的逻辑运算符没有任何关系

CSS3和jQuery都不提供“匹配其中任何一个”,因此您可以使用:


没有“或”字符,但您可以使用多个选择器-您只需用逗号分隔它们:

$('input:radio[name=foo], input:radio[name=bar]').change(function() {
    blah();
});

或者更好的是,使用类选择器,因为这正是它们的设计目的。

不幸的是,在
[attr]
选择器中没有一个简单的
选择器。您可以使用分隔符分隔您的选择:

$('input:radio[name=foo], input:radio[name=bar]').change(...);
或者,如果您的选择恰好较长,则可以使用
$.fn.filter

$('#foo #bar #baz .fizz .buzz input:radio').filter('[name=foo], [name=bar]').change(...);

我建议查看整个列表。

另一种选择是为regex添加一个新过滤器:

然后你可以做类似的事情

$('input:radio:regex(name, ^(foo|bar|baz)$)')

您提出的解决方案确实适用于较新版本的jQuery。不过,您可以将筛选器链接到查询上

$('input:radio').filter("[name=foo],[name=bar]").change(function() {
   blah();
});
在这里查看并使用JSFIDLE

我不知道您可以使用逗号分隔符,谢谢!学到了一些新东西+1也不知道你能做到。回答得好。
$('input:radio').filter("[name=foo],[name=bar]").change(function() {
   blah();
});