原来
有很多问题要求选择具有两个类的元素。但我想问的是,如果我想要的get元素只有2个提供的类和排除任何其他元素的任何其他附加类?换句话说,不需要带有附加类的元素。
<div class="a">
<div class="a b">
...
</div>
<div class="a b c">
...
</div>
</div>
在我的情况下,我只想得到第二个div元素,而不是具有a b c
类的元素。
第二次编辑:仅使用css,此选择器将在第一或第二位置选择class 'a':
$('div[class="a b"],div[class="b a"]')
编辑:您需要过滤选择并排除具有第三个类的元素:
$('.a.b')
.filter(function() {
return this.classList[2] == null;
});
$('.a.b')
.filter(function() {
return this.classList[2] == null;
})
.addClass('red');
div{
height:100px;
width:100px;
background:black;
float:left;
}
.red{
background:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="a"></div>
<div class="a b"></div>
<div class="a b c"></div>
原来
:
:
$('.a.b:not(.c)')
与
相同$('.a.b').not('.c')
但简单。
可以使用jquery
.not
选择器。
:updated:这将只选择具有a
和b
类的元素。
$("[class='a b'], [class='b a']").css("background", "blue");
.a.b{
width: 100%;
height: 100px;
}
.c{
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="a">
<div class="a b">
...
</div>
<div class="a b c">
...
</div>
</div>