1. ホーム
  2. jquery

[解決済み] jQueryはセレクタで特定のクラスを持つ要素を除外する

2022-05-10 20:57:43

質問

jQueryで特定のアンカータグのクリックイベントトリガーを設定したいのですが、どうすればよいですか?

特定のリンクを新しいタブで開き、特定のクラスを持つものを無視したい(CMSから来るので、捕まえようとしているリンクにクラスを置くことができないことをあなたが聞く前に)。

私はクラスを持つリンクを除外したい "button" または "generic_link"

試してみました。

$(".content_box a[class!=button]").click(function (e) {
    e.preventDefault();     
    window.open($(this).attr('href'));
});

しかし、これはうまくいかないようです。また、どのようにORステートメントで "generic_link" を除外することはできますか?

どのように解決するのですか?

あなたは .not() メソッドを使用します。

$(".content_box a").not(".button")

また、この他に :not() セレクタを使うこともできます。

$(".content_box a:not('.button')")

この2つのアプローチにはほとんど違いはありませんが、例外として .not() の方が読みやすい(特に連鎖している場合)ことと :not() の方がわずかに速いです。参照 この Stack Overflow の回答 を参照してください。