2012-02-28 10 views
3

私はいくつかのWebサイトの機能を開発中です。私は設計していて、何か小さいものにこだわっています。正確なクラス構造を含むdivを非表示にしたいJQuery - 正確なクラス構造を選択してください

たとえば、クラスセレクタ「.class1.class2.class3」を指定すると、正確なクラス構造を持つ要素のみが非表示になります。私が今やっていることは、 ".class1.class2.class3.class4"のような要素を隠すでしょう。私はそれを望んでいません。

ご協力いただければ幸いです!

+0

あなたは '.class1.class2.class3'オブジェクトが他のクラス名を持っていないことを意味しますか?または正確な基準によって一致しないものは何ですか?コードソリューションをまだ提供するには十分に問題を定義していません。 – jfriend00

答えて

3

この特定のケースでは、あなたが.not() selectorを使用することができます。

$('.class1.class2.class3:not(.class4)') 

ます。また、メソッドチェーンでそれを行うことができます。これは必ずしも正確.class1.class2.class3とを選択していないこと

$('.class1.class2.class3').not('.class4') 

注意他のクラスはありません。class4のものは選択できません。

+0

これはまさに私が探していたものでした! ':not(.class4.class5)' のようなこともできますか? – Giovonni

+0

@Giovonni、はい、セレクタを ':not()'の中に入れることができます。だから ':not(.class4.class5)'はうまく動作します。 –

1

私はあなただけ正確にこれら3つのクラス名を持つオブジェクトに一致するようにしたいとあなたはクラス名の順序またはそれらの間の空白の量に鈍感になりたい、あなたはこのようにそれを行うことができます。

$('.class1.class2.class3').filter(function() { 
    return(this.className.replace(/class1|class2|class3/g, "").replace(/\s*/g, "") == ''); 
}); 

あなたが唯一の特定の他のクラスを除外したい場合は、このようにそれを行うことができます。

$('.class1.class2.class3').not('.class4') 
関連する問題