jQuery:特定のIDを除いて、特定のクラスのすべての要素を選択します


146

これはおそらくかなり単純です。

thisClassidが指定されている場所を除いて、特定のクラスのすべての要素を選択したいthisId

つまり、(-/マイナスが削除を意味する場合)と同等のもの:

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

回答:


290

:notセレクターを使用します

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

複数のIDまたはセレクターがある場合は、さらにコンマ区切り文字を使用します。

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


3
複数のクラスを除外する場合はどうなりますか?THX
SoulMagnet 14

13
ドキュメントから:All selectors are accepted inside :not(), for example: :not(div a) and :not(div,a)カンマ区切りのセレクターを使用して複数を行う(".thisclass:not(#thisid,#thatid)").doAction();
Chase

このような単一引用符で動作しました-$( "。thisclass:not( '#thisid')")。doAction();
ムハンマドラジャ

または、1つを除いて特定のクラス名を持つ要素のすべての子にバインドする場合は、次のようにできます:$( '。thisclass:not(#id).otherclass')。doAction()
dalmate

$( '#some')。notimportant、$( '#another')。dosomethingelseなどの標準コードがあり、動的に指定された特定のIDでの実行を避けたい場合はどうなりますか?
Botea Florin 2017


7

次の例のような.not関数を使用して、正確なID、特定の単語を含むID、単語で始まるIDなどを持つアイテムを削除できます。http://www.w3schools.com/jquery/jquery_ref_selectorsを参照してください。 jQueryセレクターの詳細については、.asp

正確なIDで無視:

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

「Id」という単語を含むIDを無視する

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

「my」で始まるIDを無視する

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

6

誰かが探している場合に備えて、私は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使用法を取り除きます。

document.querySelectorAllを返しますNodeList
これを反復する方法(およびその他のもの)の詳細については、こちらをご覧くださいhttps : //developer.mozilla.org/en-US/docs/Web/API/NodeList



2

.not()要素全体を選択してメソッドを使用することもオプションです。

この方法は、その要素を使用して別のアクションを直接実行する場合に役立ちます。

$(".thisClass").not($("#thisId")[0].doAnotherAction()).doAction();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.