我想选择所有具有两个类ab的元素。

<element class="a b">

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

当我使用$(".a, .b")它给我的工会,但我想要的交集。

有帮助吗?

解决方案

如果要匹配只的两个类元素(交叉点,就像一个逻辑AND),只写选择器一起的没有空格在两者之间:

$('.a.b')

的顺序是不相关的,所以也可以交换类:

$('.b.a')

因此,为了具有div与类ab的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元素,类codered

$('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>

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top