4

たとえば、2つのdivを見てみましょう。

<div class="main right"></div>
<div class="main"></div>

そして、このjQueryスニペットは次のとおりです。

$('.main').css('background-color','red');

これにより、通常どおり、両方のdivの背景色が赤に変更されます。クラスとして「メイン」のみを持ち、「メインライト」を持たないdivの色を変更する方法を知りたいのですが、

4

3 に答える 3

7
$('.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-valueinnerHTML.length < 50


他のクラスが何であるかわからないがmain、クラスのみを持つ要素が必要な場合main

$('.main').filter(function(){
    return $.trim(this.className) == 'main';
}).css('background-color','red');
于 2012-05-05T23:57:51.963 に答える
1

'not()'セレクターを使用します。

$('.main:not(.right))
または好き:$('.main').not('.right')

于 2012-05-05T23:58:07.430 に答える
1

スタイルを適用する前に、「メイン」が唯一のクラスであることを確認したいようです。これは、簡単な正規表現テストで実行できます。

$('.main').filter(function(){
    return /^\s*main\s*$/.test(this.className);
}).css('background-color','red');
于 2012-05-06T00:10:20.053 に答える