JQuery: 选择给定类的所有元素,除了特定的 Id

这可能很简单。

我想选择给定类 thisClass的所有元素,除了 id 为 thisId的元素。

例如,等价于(其中-/减意味着移除) :

$(".thisClass"-"#thisId").doAction();
139170 次浏览

使用 < strong > : not selector

$(".thisclass:not(#thisid)").doAction();

如果您有多个 id 或选择符,只需使用逗号分隔符,另外:

(".thisclass:not(#thisid,#thatid)").doAction();

$(".thisClass[id!='thisId']").doAction();

关于选择器的文件: http://api.jquery.com/category/selectors/

或者采用. not ()方法

Https://api.jquery.com/not/

$(".thisClass").not("#thisId").doAction();

使用 .not()方法选择整个元素也是一种选择。

如果您想直接使用该元素执行另一个操作,这种方法可能非常有用。

$(".thisClass").not($("#thisId")[0].doAnotherAction()).doAction();

您可以像下面的示例一样使用 。不函数来删除具有确切 id、包含特定单词的 id、以单词开头的 id 等项。.有关 jQuery 选择器的更多信息,请参见 http://www.w3schools.com/jquery/jquery_ref_selectors.asp

确切身份无视:

 $(".thisClass").not('[id="thisId"]').doAction();

忽略包含单词“ ID”的 ID

$(".thisClass").not('[id*="Id"]').doAction();

忽略以“我的”开头的 ID

$(".thisClass").not('[id^="my"]').doAction();

我会附加一个 JS (ES6)答案,以防有人正在寻找它:

Array.from(document.querySelectorAll(".myClass:not(#myId)")).forEach((el,i) => {
doSomething(el);
}

更新(在我发布原始答案时这可能是可能的,但现在无论如何都要加上这个) :

document.querySelectorAll(".myClass:not(#myId)").forEach((el,i) => {
doSomething(el);
});

这样就消除了 Array.from的使用。

返回一个 NodeList
点击这里了解更多关于如何迭代(以及其他事情)的 https://developer.mozilla.org/en-us/docs/web/api/nodelist