I want to select all the elements that have the two classes a and b.
So, only the e
Group Selector
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;}
Becomes this:
body, th, td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
So in your case you have tried the group selector whereas its an intersection
$(".a, .b")
instead use this
$(".a.b")
your code $(".a, .b") will work for below multiple elements (at a same time)
<element class="a">
<element class="b">
if you want to select element having a and b both class like <element class="a b"> than use js without coma
$('.a.b')
You can use getElementsByClassName() method for what you want.
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>
This is the fastest solution also. you can see a benchmark about that here.
For the case
<element class="a">
<element class="b c">
</element>
</element>
You would need to put a space in between .a and .b.c
$('.a .b.c')
The problem you're having, is that you are using a Group Selector, whereas you should be using a Multiples selector! To be more specific, you're using $('.a, .b') whereas you should be using $('.a.b').
For more information, see the overview of the different ways to combine selectors herebelow!
Select all <h1> elements AND all <p> elements AND all <a> elements :
$('h1, p, a')
Select all <input> elements of type text, with classes code and red :
$('input[type="text"].code.red')
Select all <i> elements inside <p> elements:
$('p i')
Select all <ul> elements that are immediate children of a <li> element:
$('li > ul')
Select all <a> elements that are placed immediately after <h2> elements:
$('h2 + a')
Select all <span> elements that are siblings of <div> elements:
$('div ~ span')
Just mention another case with element:
E.g. <div id="title1" class="A B C">
Just type: $("div#title1.A.B.C")