除了特定ID之外,如何选择所有输入?

时间:2012-08-12 23:29:14

标签: jquery html selector except

我想要做的是选择文档上的所有输入按钮,但那些位于特定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"])')

和其他类似的方法

3 个答案:

答案 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]")

你必须测试两者以确定哪个更有效,但两者都可以。

两者的工作演示:http://jsfiddle.net/jfriend00/fjxDb/

答案 1 :(得分:7)

你几乎就在那里,你需要做的就是在你之前删除空间:不是。

$('input[type="button"]:not(#something input[type="button"])')

我知道这是一个老问题,但它首先出现在Google上,并且使用jquery的.not()如接受的答案所示并不总是一个选项。

答案 2 :(得分:1)

也许这有效:$(":not(#something) input[type=button]")