たとえば、2つのdivを見てみましょう。
<div class="main right"></div>
<div class="main"></div>
そして、このjQueryスニペットは次のとおりです。
$('.main').css('background-color','red');
これにより、通常どおり、両方のdivの背景色が赤に変更されます。クラスとして「メイン」のみを持ち、「メインライト」を持たないdivの色を変更する方法を知りたいのですが、
たとえば、2つのdivを見てみましょう。
<div class="main right"></div>
<div class="main"></div>
そして、このjQueryスニペットは次のとおりです。
$('.main').css('background-color','red');
これにより、通常どおり、両方のdivの背景色が赤に変更されます。クラスとして「メイン」のみを持ち、「メインライト」を持たないdivの色を変更する方法を知りたいのですが、
$('.main:not(.right)').css('background-color','red');
または:
$('.main').not('.right').css('background-color','red');
より複雑な条件が必要な場合は、filter
関数を使用して実行できます。
$('.main').filter(function(){
return $(this).data('value') == 2 && this.innerHTML.length < 50;
}).css('background-color','red');
結果を除外し、2との.main
要素のみを維持します。data-value
innerHTML.length < 50
他のクラスが何であるかわからないがmain
、クラスのみを持つ要素が必要な場合main
。
$('.main').filter(function(){
return $.trim(this.className) == 'main';
}).css('background-color','red');
'not()'セレクターを使用します。
$('.main:not(.right))
または好き:$('.main').not('.right')
スタイルを適用する前に、「メイン」が唯一のクラスであることを確認したいようです。これは、簡単な正規表現テストで実行できます。
$('.main').filter(function(){
return /^\s*main\s*$/.test(this.className);
}).css('background-color','red');