我想要做的是选择文档上的所有输入按钮,但那些位于特定ID下的按钮除外。
示例:
<body>
<input type="button">
<div id="something">
<input type="button">
</div>
<div id="something2">
<input type="button">
</div>
<input type="button">
<input type="button">
<input type="button">
</body>
例如,我想选择所有输入,但位于<div>
id
之下的那些输入除外。
我尝试了什么:
1) $('input[type="button"]:not(:parent(#something))').addCSS();
2) $('input[type="button"] :not(#something input[type="button"])')
和其他类似的方法
答案 0 :(得分:20)
你可以这样做(相对有效率)。
$("input[type=button]").filter(function() {
return $(this).closest("#something").length == 0;
});
首先,您获取所有input[type=button]
元素,然后删除#something
作为父元素的元素。
另一种可能性是:
$("input[type=button]").not("#something input[type=button]")
你必须测试两者以确定哪个更有效,但两者都可以。
答案 1 :(得分:7)
你几乎就在那里,你需要做的就是在你之前删除空间:不是。
$('input[type="button"]:not(#something input[type="button"])')
我知道这是一个老问题,但它首先出现在Google上,并且使用jquery的.not()如接受的答案所示并不总是一个选项。
答案 2 :(得分:1)
也许这有效:$(":not(#something) input[type=button]")