jQuery选择器只选择特定的2个类,不包括任何其他的



有很多问题要求选择具有两个类的元素。但我想问的是,如果我想要的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:这将只选择具有ab类的元素。

$("[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>

相关内容

最新更新