我想选择具有两个类a和b的所有元素。

<element class="a b">

因此,只有同时具有这两个类的元素。

当我使用$(“.a,.b”)时,它给了我并集,但我想要交集。


当前回答

代码$(“.a,.b”)将同时适用于以下多个元素

<element class="a">
<element class="b">

如果您想选择同时具有a和b类的元素,如<element class=“a b”>,请使用不带逗号的js

$('.a.b')

其他回答

您可以根据需要使用getElementsByClassName()方法。

var elems=document.getElementsByClassName(“a b c”);elems[0].style.color=“绿色”;console.log(elems[0]);<ul><li class=“a”>a</li><li class=“a b”>a,b</li><li class=“a b c”>a、b、c</li></ul>

这也是最快的解决方案。你可以在这里看到一个基准。

可以使用filter()函数执行此操作:

$(".a").filter(".b")

代码$(“.a,.b”)将同时适用于以下多个元素

<element class="a">
<element class="b">

如果您想选择同时具有a和b类的元素,如<element class=“a b”>,请使用不带逗号的js

$('.a.b')

var elem=document.querySelector(“.a.b”);

如果您希望只匹配两个类的元素(交集,如逻辑AND),只需将选择器写在一起,其间不留空格:

$('.a.b')

顺序不相关,因此您也可以交换类:

$('.b.a')

因此,要将ID为a的div元素与类b和c相匹配,您可以编写:

$('div#a.b.c')

(在实践中,您很可能不需要获得特定的ID,而ID或类选择器本身通常就足够了:$(“#a”)。)