Vreau pentru a selecta toate elementele care au două clase " a " și "b".
<element class="a b">
Deci, numai elementele care au ambele clase.
Când m-am folosi $(".o, .b")
dă-mi uniunii, dar vreau intersecție.
Dacă doriți pentru a se potrivi doar elemente cu ambele clase (o intersecție, ca ȘI logice), scrie doar selectoare împreună fără spații în între:
$('.a.b')
Ordinea nu este relevantă, astfel încât să puteți schimba, de asemenea, cursuri de:
$('.b.a')
Deci, pentru a se potrivi o div
element care are o IDENTITATE de " a "cu clasele" b " și "c", va scrie:
$('div#a.b.c')
(În practică, cel mai probabil don't nevoie pentru a obține specifice, și un act de IDENTITATE sau selector de clasă de la sine este de obicei suficient: $('#o')
.)
Puteți face acest lucru folosind filter()
funcția:
$(".a").filter(".b")
Problema pe care're au, este că sunteți folosind un Grup de Selectorului, întrucât ar trebui să fie folosind un Multipli selector
! Pentru a fi mai specific, te're folosind $('.o, .b')
întrucât ar trebui să fie folosind $('.o.b')
.
Pentru mai multe informații, consultați prezentare generală a diferitelor moduri de a combina selectoare herebelow!
Selectați toate <h1>
elemente ȘI toate <p>
elemente ȘI toate <a>
elemente :
$('h1, p, a')
Selectați toate <input>
elemente de "tip", "text", cu clase de " cod " și "roșu":
$('input[type="text"].code.red')
Selectați toate <i>
elemente interior <p>
elemente:
$('p i')
Selectați toate <ul>
elemente care sunt imediate copii de `
$('li > ul')
Selectați toate <a>
elemente care sunt plasate, imediat după <h2>
elemente:
$('h2 + a')
Selectați toate <interval>
elemente care sunt frați de <div>
elemente:
$('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>
Selector Grup
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;}
Devine:
body, th, td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
Deci, în cazul dumneavoastră ați încercat grup selector întrucât o intersecție
$(".a, .b")
în loc să utilizați acest
$(".a.b")
Puteți folosi getElementsByClassName () metoda pentru ceea ce vrei.
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>
Aceasta este cea mai rapidă soluție, de asemenea,. puteți vedea un punct de referință despre care aici.