¿Cómo puedo seleccionar un elemento con múltiples clases en jQuery?
Quiero seleccionar todos los elementos que tienen las dos clases a
y b
.
<element class="a b">
Entonces, solo los elementos que tienen ambas clases.
Cuando lo uso $(".a, .b")
me da la unión, pero quiero la intersección.
Si desea hacer coincidir solo elementos con ambas clases (una intersección, como un AND lógico), simplemente escriba los selectores juntos sin espacios entre ellos:
$('.a.b')
El orden no es relevante, por lo que también puedes intercambiar las clases:
$('.b.a')
Entonces, para hacer coincidir un div
elemento que tiene un ID de a
con clases b
y c
, escribirías:
$('div#a.b.c')
(En la práctica, lo más probable es que no necesite ser tan específico, y un ID o selector de clase por sí solo suele ser suficiente:) $('#a')
.
Puedes hacer esto usando la filter()
función:
$(".a").filter(".b")
Para el caso
<element class="a">
<element class="b c">
</element>
</element>
Deberías dejar un espacio entre .a
y.b.c
$('.a .b.c')
El problema que tienes es que estás usando a Group Selector
, mientras que deberías usar a Multiples selector
! Para ser más específico, estás usando $('.a, .b')
cuando deberías usar $('.a.b')
.
Para obtener más información, consulte la descripción general de las diferentes formas de combinar selectores a continuación.
Selector de grupo: ","
Seleccione todos <h1>
los elementos Y todos <p>
los elementos Y todos <a>
los elementos:
$('h1, p, a')
Selector de múltiplos: "" (sin carácter)
Seleccione todos <input>
los elementos de type
text
, con clases code
y red
:
$('input[type="text"].code.red')
Selector de descendientes: " " (espacio)
Seleccione todos <i>
los elementos dentro de <p>
los elementos:
$('p i')
Selector de niños: ">"
Seleccione todos <ul>
los elementos que son hijos inmediatos de un <li>
elemento:
$('li > ul')
Selector de hermanos adyacentes: "+"
Seleccione todos <a>
los elementos que se colocan inmediatamente después de <h2>
los elementos:
$('h2 + a')
Selector general de hermanos: "~"
Seleccione todos <span>
los elementos que sean hermanos de <div>
elementos:
$('div ~ span')