如何使用jQuery过滤不需要的元素

Edu*_*ard 4 jquery class jquery-selectors

我们举两个div,

<div class="main right"></div>
<div class="main"></div>
Run Code Online (Sandbox Code Playgroud)

这个jQuery片段如下:

$('.main').css('background-color','red');
Run Code Online (Sandbox Code Playgroud)

这将正常地将div背景颜色更改为红色.我想知道如何改变那些只有"主"作为类而不是"主权"的div的颜色,

gdo*_*ica 7

$('.main:not(.right)').css('background-color','red');
Run Code Online (Sandbox Code Playgroud)

要么:

$('.main').not('.right').css('background-color','red');
Run Code Online (Sandbox Code Playgroud)

如果必须使用更复杂的条件,可以使用以下filter功能:

$('.main').filter(function(){
    return $(this).data('value') == 2 && this.innerHTML.length < 50;
}).css('background-color','red');
Run Code Online (Sandbox Code Playgroud)

它将过滤掉结果.main并仅维护它们data-value为2的元素和它们的元素innerHTML.length < 50.


如果你不知道其他类可能是什么,main但你想要只有main类的元素.

$('.main').filter(function(){
    return $.trim(this.className) == 'main';
}).css('background-color','red');
Run Code Online (Sandbox Code Playgroud)