如何选择与多个类jQuery中的元素?
-
22-07-2019 - |
题
我想选择所有具有两个类a
和b
的元素。
<element class="a b">
因此,只有元素具有的两个类。
当我使用$(".a, .b")
它给我的工会,但我想要的交集。
解决方案
如果要匹配只的两个强>类元素(交叉点,就像一个逻辑AND),只写选择器一起的没有空格强>在两者之间:
$('.a.b')
的顺序是不相关的,所以也可以交换类:
$('.b.a')
因此,为了具有div
与类a
和b
的ID的c
元件匹配,可编写:
$('div#a.b.c')
(在实践中,你最有可能并不需要获得特定,并通过自身的ID或类选择通常是足够的。$('#a')
)
其他提示
可以使用 filter()
功能做到这一点:
$(".a").filter(".b")
有关的情况下
<element class="a">
<element class="b c">
</element>
</element>
您将需要把空间.a
和.b.c
之间
$('.a .b.c')
您遇到,问题是,你使用的是Group Selector
,而你应该使用Multiples selector
!更具体地讲,你使用$('.a, .b')
而你应该使用$('.a.b')
。
有关详细信息,请参阅的不同方法概述结合选择herebelow!
组选择: “”
选择所有<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')
$('.a .b , .a .c').css('border', '2px solid yellow');
//selects b and c
<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>
<div class="c">c</div>
<div class="d">d</div>
</div>
刚提到与另一个元件的情况下:
E.g。 <div id="title1" class="A B C">
仅有类型:$("div#title1.A.B.C")
香草JavaScript解决方案: -
document.querySelectorAll('.a.b')
有关更好的性能,您可以使用
$('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")
您不需要为这个jQuery
在Vanilla
可以这样做:
document.querySelectorAll('.a.b')
您可以使用getElementsByClassName()
方法你想要的东西。
var elems = document.getElementsByClassName("a b c");
elems[0].style.color = "green";
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>
这是最快的解决方案也。你可以看到一个关于这里基准。