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

Ram*_*lat 5 jquery jquery-selectors

有很多问题要求选择具有 2 个类别的元素。但我想问,如果我想要获取仅具有 2 个提供的类的元素并排除具有任何其他附加类的任何其他元素怎么办?换句话说,不需要具有附加类的元素。

<div class="a">
  <div class="a b">
    ...
  </div>
  <div class="a b c">
    ...
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

就我而言,我只想获取第二个 div 元素,而不是带有a b c类的元素。

Alv*_*aro 4

第二次编辑:仅使用 css,此选择器将选择第一个或第二个位置的两种情况类“a”:

$('div[class="a b"],div[class="b a"]')
Run Code Online (Sandbox Code Playgroud)

编辑:您需要过滤选择并排除具有第三类的元素:

$('.a.b')
    .filter(function() {
        return this.classList[2] == null;
    });
Run Code Online (Sandbox Code Playgroud)

$('div[class="a b"],div[class="b a"]')
Run Code Online (Sandbox Code Playgroud)
$('.a.b')
    .filter(function() {
        return this.classList[2] == null;
    });
Run Code Online (Sandbox Code Playgroud)
$('.a.b')
    .filter(function() {
    return this.classList[2] == null;
    })
    .addClass('red');
Run Code Online (Sandbox Code Playgroud)


原来的

关于什么:

$('.a.b:not(.c)')
Run Code Online (Sandbox Code Playgroud)

这与以下相同

$('.a.b').not('.c')
Run Code Online (Sandbox Code Playgroud)

但更简单。