我想选择具有两个类a和b的所有元素。
<element class="a b">
因此,只有同时具有这两个类的元素。
当我使用$(“.a,.b”)时,它给了我并集,但我想要交集。
我想选择具有两个类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')
其他回答
如果您希望只匹配两个类的元素(交集,如逻辑AND),只需将选择器写在一起,其间不留空格:
$('.a.b')
顺序不相关,因此您也可以交换类:
$('.b.a')
因此,要将ID为a的div元素与类b和c相匹配,您可以编写:
$('div#a.b.c')
(在实践中,您很可能不需要获得特定的ID,而ID或类选择器本身通常就足够了:$(“#a”)。)
您遇到的问题是,您使用的是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')
您可以根据需要使用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")
只需提及另一个带有元素的案例:
例如<div id=“title1”class=“A B C”>
只需键入:$(“div#title1.A.B.C”)