此代码行选择任何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选择器)
答案 0 :(得分:3)
我认为你正在考虑一个“或”的概念。不幸的是,这在jQuery / CSS选择中并不存在。你需要为整个选择做一个“或”:
$('div.item > div.id > :input, div.item > div.quantity > :input')
如果您没有使用live
,最简单的方法是使用DOM遍历:
$('div.item').children('div.id, div.quantity').children(':input')
由于您使用的是live
,因此第一个示例可能是最简单的技术。
答案 1 :(得分:3)
我不知道我是否会推荐这个,但您可以使用:not
两次:
$("div.item > div:not(:not(.id,.quantity)) > :input")
更好的方法是创建自己的:is
选择器
$.expr[':'].is = function(elem, index, match){
return $(elem).is(match[3]);
};
$("div.item > div:is(.id,.quantity) > :input")