He escuchado eso querySelector
y querySelectorAll
son nuevos métodos para seleccionar DOM
elementos. ¿Cómo se comparan con los métodos anteriores getElementById
y getElementsByClassName
en términos de rendimiento y compatibilidad con el navegador?
¿Cómo se compara el rendimiento con el uso del selector de consultas de jQuery?
¿Existe una recomendación de buenas prácticas sobre qué conjunto nativo utilizar?
javascript
jquery
dom
va a las once
fuente
fuente
getElementById
ygetElementsByClassName
siguen siendo ideal para los fines de sus nombres describen.qS/qSA
se puede usar desde cualquier contexto de elemento, perogEBI
solo se puede usar desde eldocument
contexto.getElementById
coincide con losid
atributos para encontrar nodos DOM, mientras quequerySelector
busca por selectores. Así que para un selector no válido, por ejemplo<div id="1"></div>
,getElementById('1')
podría trabajar mientrasquerySelector('#1')
fallaría, a menos que usted le diga que coincida con elid
atributo (por ejemploquerySelector('[id="1"]')
.querySelector
yquerySelectorAll
son totalmente compatibles ahora. caniuse.com/#feat=queryselectorRespuestas:
"Mejor" es subjetivo.
querySelector
es la característica más nueva.getElementById
es mejor compatible quequerySelector
.querySelector
es mejor compatible quegetElementsByClassName
.querySelector
le permite encontrar elementos con reglas que no se pueden expresar congetElementById
ygetElementsByClassName
Debe elegir la herramienta adecuada para cualquier tarea determinada.
(En lo anterior, para
querySelector
leerquerySelector
/querySelectorAll
).fuente
getElementById
>querySelector
>getElementsByClassName
, porque pensé quegetElementsByClassName
debería tener el mismo nivel de apoyo quegetElementById
?Las funciones
getElementById
ygetElementsByClassName
son muy específicas, mientras quequerySelector
yquerySelectorAll
son más elaboradas. Supongo que en realidad tendrán un peor desempeño.Además, debe verificar la compatibilidad de cada función en los navegadores a los que se dirige. Cuanto más nuevo sea, mayor probabilidad de falta de soporte o de que la función tenga errores.
fuente
nodelist ... is not live
¿puede proporcionar documentación para eso? @ W.Prins ambos métodos devuelven elElement
tipo.