如何使用jQuery过滤不需要的元素
让我们举两个div,
这个jQuery片段如下:
$('.main').css('background-color','red');
这将正常地将div背景颜色更改为红色。 我想知道如何改变那些只有“主”作为类而不是“主权”的div的颜色,
$('.main:not(.right)').css('background-color','red');
要么:
$('.main').not('.right').css('background-color','red');
如果必须使用更复杂的条件,可以使用filter
function:
$('.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').filter(function(){ return $.trim(this.className) == 'main'; }).css('background-color','red');
使用’not()’选择器。
$('.main:not(.right))
或者像: $('.main').not('.right')
在我看来,您想要在应用样式之前validation“main”是唯一的类。 您可以通过快速正则表达式测试来完成此操作:
$('.main').filter(function(){ return /^\s*main\s*$/.test(this.className); }).css('background-color','red');