我要选择所有具有两个类的元素a和b。
<element class="a b">
因此,只有具有两个类的元素。
当我使用$(".a, .b")它时,会给我工会,但是我想要交集。
我要选择所有具有两个类的元素a和b。
<element class="a b">
因此,只有具有两个类的元素。
当我使用$(".a, .b")它时,会给我工会,但是我想要交集。
Answers:
如果只想匹配两个类的元素(一个交集,如逻辑AND),则只需将选择器写在一起,而在它们之间不能有空格:
$('.a.b')
顺序无关紧要,因此您也可以交换类:
$('.b.a')
因此,要匹配divID为的a带有类b和的元素c,您应编写:
$('div#a.b.c')
(在实践中,您很可能不需要具体说明,通常一个ID或类选择器本身就足够了:)$('#a')。
b和c是动态添加的,则可能会很有用,并且仅当元素具有这些类时才要选择该元素。
.a .b搜索具有class的元素,b这些元素是具有class 的元素的后代a。因此,类似这样的操作div a只会返回a元素内部的div元素。
您可以使用以下filter()功能执行此操作:
$(".a").filter(".b")
.a,并且需要基于也属于原始.a集合的不同任意类进行多次过滤,则这样做的效率也更高。
对于这种情况
<element class="a">
<element class="b c">
</element>
</element>
您需要在.a和之间放置一个空格.b.c
$('.a .b.c')
$('.a .c.b')也可以工作吗?
$('.a > element')
您遇到的问题是您正在使用Group Selector,而您应该使用Multiples selector!更具体地说,您使用,$('.a, .b')而您应该使用$('.a.b')。
有关更多信息,请参见下文中组合选择器的不同方法的概述!
选择所有<h1>元素以及所有<p>元素和所有<a>元素:
$('h1, p, a')
选择的所有<input>元素type text,以及类code和red:
$('input[type="text"].code.red')
选择<i>元素内的所有<p>元素:
$('p i')
选择所有作为<ul>元素直接子<li>元素的元素:
$('li > ul')
选择所有<a>紧随<h2>元素之后的元素:
$('h2 + a')
选择作为<span>元素兄弟的所有<div>元素:
$('div ~ span')
为了获得更好的性能,您可以使用
$('div.a.b')
这将只浏览div元素,而不是逐步浏览页面上所有的html元素。
组选择器
body {font-size: 12px; }
body {font-family: arial, helvetica, sans-serif;}
th {font-size: 12px; font-family: arial, helvetica, sans-serif;}
td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
变成这个:
body, th, td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
因此,在您的情况下,您尝试了组选择器,而其交集
$(".a, .b")
改用这个
$(".a.b")
var elem = document.querySelector(“。ab”);