¿Cómo puedo seleccionar un elemento con múltiples clases en jQuery?

Resuelto Mladen asked hace 15 años • 14 respuestas

Quiero seleccionar todos los elementos que tienen las dos clases ay 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.

Mladen avatar Jun 25 '09 05:06 Mladen
Aceptado

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 divelemento que tiene un ID de acon clases by 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').

Sasha Chedygov avatar Jun 24 '2009 22:06 Sasha Chedygov

Puedes hacer esto usando la filter()función:

$(".a").filter(".b")
Jamie Love avatar Jun 24 '2009 22:06 Jamie Love

Para el caso

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

Deberías dejar un espacio entre .ay.b.c

$('.a .b.c')
juanpaulo avatar Mar 25 '2013 20:03 juanpaulo

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 codey 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')
John Slegers avatar Jan 20 '2016 22:01 John Slegers