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.
jquery
jquery-selectors
Mladen
fuente
fuente

Respuestas:
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:
El orden no es relevante, por lo que también puede intercambiar las clases:
Entonces, para hacer coincidir un
divelemento que tiene un IDacon clasesbyc, escribiría:(En la práctica, lo más probable es que no necesite ser tan específico, y un ID o un selector de clase por sí solo suele ser suficiente:.
$('#a'))fuente
bycse agregan dinámicamente, y solo desea seleccionar el elemento si tiene esas clases..a .bbusca elementos con clasebque son descendientes de un elemento con clasea. Entonces, algo asídiv asolo devolveráaelementos que están dentro de undivelemento.Puedes hacer esto usando la
filter()función:fuente
.a's' y necesita filtrar varias veces diferentes clases arbitrarias basadas que también pertenecen al.aconjunto original .Para el caso
Tendría que poner un espacio entre
.ay.b.cfuente
$('.a .c.b')funcionaría también el selector ?$('.a > element')El problema que tienes es que estás usando a
Group Selector, ¡mientras que deberías estar usando aMultiples selector! Para ser más específico, está usando$('.a, .b')mientras que debería estar usando$('.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 los
<h1>elementos Y todos los<p>elementos Y todos los<a>elementos:Selector de múltiplos: "" (sin caracteres)
Seleccione todos los
<input>elementos detypetext, con clasescodeyred:Selector descendiente: "" (espacio)
Seleccione todos los
<i>elementos dentro de los<p>elementos:Selector de niños: ">"
Seleccione todos los
<ul>elementos que son hijos inmediatos de un<li>elemento:Selector de hermanos adyacentes: "+"
Seleccione todos los
<a>elementos que se colocan inmediatamente después de los<h2>elementos:Selector general de hermanos: "~"
Seleccione todos los
<span>elementos que son hermanos de<div>elementos:fuente
fuente
Solo mencione otro caso con element:
P.ej
<div id="title1" class="A B C">Sólo tipo:
$("div#title1.A.B.C")fuente
Solución JavaScript de vainilla: -
document.querySelectorAll('.a.b')fuente
Para un mejor rendimiento puedes usar
Esto solo se verá a través de los elementos div en lugar de recorrer todos los elementos html que tiene en su página.
fuente
Selector de grupo
Se convierte en esto:
Entonces, en su caso, ha probado el selector de grupo mientras que es una intersección
en su lugar usa esto
fuente
No necesitas
jQuerypara estoEn
Vanillapuedes hacer:fuente
su código
$(".a, .b")funcionará para varios elementos debajo (al mismo tiempo)si desea seleccionar un elemento que tenga ambas clases de a y b, en lugar
<element class="a b">de usar js sin comafuente
Puedes usar el
getElementsByClassName()método para lo que quieras.Esta es la solución más rápida también. Puedes ver un punto de referencia sobre eso aquí .
fuente
var elem = document.querySelector (". ab");
fuente