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

Jos*_*e A 12 html jquery 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>
Run Code Online (Sandbox Code Playgroud)

例如,我想选择所有的投入,除了那些位于下<div>id为"东西".

我尝试过的:

1) $('input[type="button"]:not(:parent(#something))').addCSS();

2) $('input[type="button"] :not(#something input[type="button"])')
Run Code Online (Sandbox Code Playgroud)

和其他类似的方法

jfr*_*d00 22

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

$("input[type=button]").filter(function() {
    return $(this).closest("#something").length == 0;
});
Run Code Online (Sandbox Code Playgroud)

首先,获取所有input[type=button]元素,然后删除那些#something作为父元素的元素.

另一种可能性是:

$("input[type=button]").not("#something input[type=button]")
Run Code Online (Sandbox Code Playgroud)

您必须测试两者以查看哪个更有效,但两者都可以.

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


小智 9

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

$('input[type="button"]:not(#something input[type="button"])')
Run Code Online (Sandbox Code Playgroud)

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