如何筛选使用jQuery不需要的元素(How to filter undesired element

2019-09-17 01:03发布

让我们例如两个div,

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

而这个jQuery的片断,因为它如下:

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

这将背景颜色更改这两个div的红色,是正常的。 我想知道如何改变这种颜色对于只有“主”为类,而不是“主力右”的div,

Answer 1:

$('.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');

它会过滤掉的结果.main和其保持唯一元件data-value是2和它们的innerHTML.length < 50


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

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


Answer 2:

使用“未()”选择器。

$('.main:not(.right))
或类似: $('.main').not('.right')



Answer 3:

它看起来对我说,你要验证“主”是唯一的类应用的样式之前。 你可以用正则表达式快速测试这样做:

$('.main').filter(function(){
    return /^\s*main\s*$/.test(this.className);
}).css('background-color','red');


文章来源: How to filter undesired elements with jQuery