如何组合jquery选择器属性

时间:2017-01-12 15:49:19

标签: jquery jquery-selectors

如何在jquery中组合一些选择器来拒绝我的函数在某些字段上做出反应?

样品:

我的自动完成又名。当任何输入字段获得大于3个符号的值时,将调用搜索函数。

要排除某些输入,请使用此

$('#customerdata input[name!="c_ldate"]').bind('keyup',function(){...

这适用于一个领域。不,我有第二个输入,我的功能不应该响应。

我想做类似

的事情
$('#customerdata input[name!="c_ldate"], input[name!="c_ldate2"]')...

但这不起作用。

是否有一种简单的方法可以选择属性(名称)并说出"如果值是bla bla,请不要使用此"短手name!="bla bla OR foo bar"

很难添加小提琴...我的小提琴根本不起作用......即使不是我使用我的工作代码...... 有线

简单地说:

我在div中有10个输入,我想按名称排除其中两个!

修改

找到了我的解决方案。

$('#customerdata input').not('[name!="c_ldate"]').not('[name!="c_ldate_text"]')
//or similar and bit shorter
$('#customerdata input').not('[name!="c_ldate"],[name!="c_ldate_text"]')
//shortest for me in my case
$('#customerdata input').not('[name^="c_ldate"]')
//what actually just checks if name attribte starts with... so this is fine for me as well

2 个答案:

答案 0 :(得分:0)

为所有输入添加一个类?然后     $("的.class")。结合... 如果我理解你的问题。

答案 1 :(得分:0)

逻辑上,两个CSS选择器之间的逗号运算符就像逻辑OR,但您的选择器正在排除。像这样:if(x!= 3 || x!= 4)。但该表达式不会排除x的任何值。我用jQuery尝试了这个,我碰巧有一个方便的方式:

   $("body").append("<div id='foo'><input name='fred'><input name='george'><input name='harry'>");

然后,选择器:

$("#foo input[name!=fred]");
[input, input]
$("#foo input[name!=george]");
[input, input]
$("#foo input[name!=george], #foo input[name!=fred]");
[input, input, input]

所以最后一个选择器表达式不排除三个输入中的任何一个。