13

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

和其他类似的方法

4

3 回答 3

24

你可以这样做(相对有效)。

$("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/

于 2012-08-12T23:36:29.057 回答
12

您快到了,您需要做的就是删除 :not 之前的空格。

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

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

于 2016-04-28T10:51:54.853 回答
2

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

于 2012-08-12T23:32:23.290 回答