Domanda Come posso selezionare un elemento con più classi in jQuery?


Voglio selezionare tutti gli elementi che hanno le due classi a e b.

<element class="a b">

Quindi, solo gli elementi che hanno entrambi classi.

Quando lo uso $(".a, .b") mi dà l'unione, ma voglio l'intersezione.


1771
2018-06-24 22:28


origine


risposte:


Se vuoi un incrocio, scrivi i selettori insieme senza spazi nel mezzo.

$('.a.b')

Quindi per un elemento che ha un ID di a con le classi b e c, dovresti scrivere:

$('#a.b.c')

2291
2018-06-24 22:30



Puoi farlo usando il filter() funzione:

$(".a").filter(".b")

147
2018-06-24 22:34



Per il caso

<element class="a">
  <element class="b c">
  </element>
</element>

Avresti bisogno di mettere uno spazio in mezzo .a e .b.c

$('.a .b.c')

97
2018-03-25 20:31



Il problema che stai avendo è che stai usando un Group Selector, mentre dovresti usare a Multiples selector! Per essere più specifici, stai usando $('.a, .b') mentre dovresti usare $('.a.b').

Per ulteriori informazioni, vedere la panoramica dei diversi modi di combinare i selettori qui sotto!


Selettore gruppo: ","

Seleziona tutto <h1> elementi E tutto <p> elementi E tutto <a> elementi :

$('h1, p, a')

Selettore Multipli: "" (nessun carattere)

Seleziona tutto <input> elementi di type  text, con le lezioni code e red :

$('input[type="text"].code.red')

Selettore dei discendenti: "" (spazio)

Seleziona tutto <i> elementi all'interno <p> elementi:

$('p i')

Selettore bambino: ">"

Seleziona tutto <ul> elementi che sono figli immediati di a <li> elemento:

$('li > ul')

Selettore della Sibling adiacente: "+"

Seleziona tutto <a> elementi che vengono posizionati immediatamente dopo <h2> elementi:

$('h2 + a')

Selettore generale del fratello germano: "~"

Seleziona tutto <span> elementi che sono fratelli di <div> elementi:

$('div ~ span')

45
2018-01-20 22:24



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


30
2018-04-19 07:19



Soluzione JavaScript vaniglia: -

document.querySelectorAll('.a.b')


23
2018-01-29 18:02



Basta menzionare un altro caso con l'elemento:

Per esempio. <div id="title1" class="A B C">

Scrivi semplicemente: $("div#title1.A.B.C")


22
2017-12-14 16:15