jQuery,REAL:不是运营商的等价物吗?

这段代码行选择任何div中的所有子输入,他的类名不是“id”和“quantity”::

$("div.item > div:not(.id,.quantity) > :input").live("keydown",function(event) {}); 

相反的代码行是什么? , 就像是 ::

 $("div.item > div:filter(.id,.quantity) > :input").live("keydown",function(event) {}); 

(当然:filter不是有效的jQuery选择器)

我不知道我是否会推荐这个,但你可以使用:not两次:

 $("div.item > div:not(:not(.id,.quantity)) > :input") 

http://jsfiddle.net/6aW2B/

更好的方法是创建自己的:is选择器

 $.expr[':'].is = function(elem, index, match){ return $(elem).is(match[3]); }; $("div.item > div:is(.id,.quantity) > :input") 

http://jsfiddle.net/8Uny2/

我认为你正在考虑一个“或”的概念。 不幸的是,这在jQuery / CSS选择中并不存在。 你需要为整个选择做一个“或”:

 $('div.item > div.id > :input, div.item > div.quantity > :input') 

如果您不使用live ,最简单的方法是使用DOM遍历:

 $('div.item').children('div.id, div.quantity').children(':input') 

由于您正在使用live ,第一个示例可能是最简单的技术。