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

<element class="a b">

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

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


当前回答

只需提及另一个带有元素的案例:

例如<div id=“title1”class=“A B C”>

只需键入:$(“div#title1.A.B.C”)

其他回答

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

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

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

$('.a.b')

这不需要jQuery

在Vanilla,您可以做到:

document.querySelectorAll('.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>

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

下面的示例将向您介绍如何在一行中同时选择多个嵌套类选择器和直接类选择器

//以下是选择器的说明//.a.b.c=选择div a和b内部的嵌套子c//.a.d=选择div a内部的嵌套子d//.f=选择直接元素,即div f,它在div a和b之外$('.a.b.c,.a.d,.f').css('背景颜色','灰色');<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><div class=“a”>a<div class=“b”>b<div class=“c”>c</div></div><div class=“d”>d</div></div><div class=“e”>e</div><div class=“f”>f</div>

您遇到的问题是,您使用的是Group Selector,而您应该使用Multiples选择器!更具体地说,您使用的是$('.a,.b'),而应该使用$('.a.b')。

有关更多信息,请参阅下面组合选择器的不同方法概述!


组选择器:“,”

选择所有<h1>元素和所有<p>元素以及所有<a>元素:

$('h1, p, a')

倍数选择器:“”(无字符)

选择文本类型的所有<input>元素,类代码和红色:

$('input[type="text"].code.red')

下降选择器:“”(空格)

选择<p>元素中的所有<i>元素:

$('p i')

子选择器:“>”

选择作为<li>元素的直接子元素的所有<ul>元素:

$('li > ul')

相邻同级选择器:“+”

选择紧挨在<h2>元素之后的所有<a>元素:

$('h2 + a')

通用同级选择器:“~”

选择所有<div>元素的同级<span>元素:

$('div ~ span')