Digamos que tengo esto:
<div class="class1 class2"></div>
¿Cómo selecciono este div
elemento?
document.getElementsByClassName('class1')[0].getElementsByClassName('class2')[0]
Eso no funciona.
Sé que, en jQuery, lo es $('.class1.class2')
, pero me gustaría seleccionarlo con JavaScript de vainilla.
javascript
class
element
Nathan Prometheus
fuente
fuente
Y (ambas clases)
O (al menos una clase)
XOR (una clase pero no la otra)
NAND (no ambas clases)
NOR (no cualquiera de las dos clases)
fuente
querySelectorAll con selectores de clase estándar también funciona para esto.
fuente
document.querySelectorAll('.class1, .class2');
.class1
OR.class2
, mientras que el anterior solo capturaría elementos con ambas clases y de hecho funciona. Vea el resultado de la consola de esta prueba: jsfiddle.net/0ph1p9p2Como dijo @filoxo, puedes usar
document.querySelectorAll
.Si sabe que solo hay un elemento con la clase que está buscando, o si solo le interesa el primero, puede usar:
Por cierto, mientras
.class1.class2
indica un elemento con ambas clases,.class1 .class2
(observe el espacio en blanco) indica una jerarquía, y un elemento con claseclass2
que está dentro de un elemento con claseclass1
:Y si desea forzar la recuperación de un hijo directo, use
>
sign (.class1 > .class2
):Para obtener información completa sobre los selectores:
https://www.w3schools.com/jquery/jquery_ref_selectors.asp
fuente
html
código javascritp
El método querySelectorAll () devuelve todos los elementos en el documento que coinciden con un selector (es) CSS especificado, como un objeto NodeList estático.
El objeto NodeList representa una colección de nodos. Se puede acceder a los nodos por números de índice. El índice comienza en 0.
también aprenda más sobre https://www.w3schools.com/jsref/met_document_queryselectorall.asp
== Gracias ==
fuente
Bien, este código hace exactamente lo que necesitas:
HTML:
JS:
¡Espero eso ayude! ;)
fuente
en realidad la respuesta de @bazzlebrush y el comentario de @filoxo me ayudaron mucho.
Necesitaba encontrar los elementos donde la clase podría ser "zA yO" O "zA zE"
Usando jquery, primero selecciono el padre de los elementos deseados:
(un div con clase que comienza con 'abc' y style! = 'display: none')
entonces los hijos deseados de ese elemento:
¡funciona perfectamente! tenga en cuenta que no tiene que hacer document.querySelector, como puede pasar anteriormente en un objeto preseleccionado.
fuente