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

时间:2016-11-13 12:17:33

标签: jquery jquery-selectors

有很多问题要求选择2个类的元素。 但我想问一下,如果我想要只有2个提供类的get元素和排除任何其他具有任何其他类的元素,该怎么办?换句话说,没有需要额外类的元素。

<div class="a">
  <div class="a b">
    ...
  </div>
  <div class="a b c">
    ...
  </div>
</div>

在我的情况下,我想获得第二个div元素,而不是a b c类的元素。

2 个答案:

答案 0 :(得分:2)

第二次修改:只使用css这个选择器会在第一个位置或第二个位置选择两个案例类'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')

但更简单。

答案 1 :(得分:2)

您可以使用jquery .not选择器。

:已更新:这将仅选择包含类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>