让我们例如两个div,
<div class="main right"></div>
<div class="main"></div>
而这个jQuery的片断,因为它如下:
$('.main').css('background-color','red');
这将背景颜色更改这两个div的红色,是正常的。 我想知道如何改变这种颜色对于只有“主”为类,而不是“主力右”的div,
让我们例如两个div,
<div class="main right"></div>
<div class="main"></div>
而这个jQuery的片断,因为它如下:
$('.main').css('background-color','red');
这将背景颜色更改这两个div的红色,是正常的。 我想知道如何改变这种颜色对于只有“主”为类,而不是“主力右”的div,
$('.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');
使用“未()”选择器。
$('.main:not(.right))
或类似: $('.main').not('.right')
它看起来对我说,你要验证“主”是唯一的类应用的样式之前。 你可以用正则表达式快速测试这样做:
$('.main').filter(function(){
return /^\s*main\s*$/.test(this.className);
}).css('background-color','red');