让我们举两个div,
<div class="main right"></div>
<div class="main"></div>
这个jQuery片段,如下:
$('.main').css('background-color','red');
这会将divs background-color更改为红色,正常情况下。我想知道如何改变那些只有“主”作为类的div的颜色,而不是“主权”,
答案 0 :(得分: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');
它会过滤掉.main
的结果,并仅保留其data-value
为2及其innerHTML.length < 50
的元素。
如果您不知道main
可以使用哪些其他类,但您想要的是只有main
类的元素。
$('.main').filter(function(){
return $.trim(this.className) == 'main';
}).css('background-color','red');
答案 1 :(得分:1)
使用'not()'选择器。
$('.main:not(.right))
或者像:$('.main').not('.right')
答案 2 :(得分:1)
在我应用样式之前,我希望您确认“main”是 only 类。您可以通过快速正则表达式测试来完成此操作:
$('.main').filter(function(){
return /^\s*main\s*$/.test(this.className);
}).css('background-color','red');