He escuchado eso querySelectory querySelectorAllson nuevos métodos para seleccionar DOMelementos. ¿Cómo se comparan con los métodos anteriores getElementByIdy getElementsByClassNameen 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

getElementByIdygetElementsByClassNamesiguen siendo ideal para los fines de sus nombres describen.qS/qSAse puede usar desde cualquier contexto de elemento, perogEBIsolo se puede usar desde eldocumentcontexto.getElementByIdcoincide con losidatributos para encontrar nodos DOM, mientras quequerySelectorbusca 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 elidatributo (por ejemploquerySelector('[id="1"]').querySelectoryquerySelectorAllson totalmente compatibles ahora. caniuse.com/#feat=queryselectorRespuestas:
"Mejor" es subjetivo.
querySelectores la característica más nueva.getElementByIdes mejor compatible quequerySelector.querySelectores mejor compatible quegetElementsByClassName.querySelectorle permite encontrar elementos con reglas que no se pueden expresar congetElementByIdygetElementsByClassNameDebe elegir la herramienta adecuada para cualquier tarea determinada.
(En lo anterior, para
querySelectorleerquerySelector/querySelectorAll).fuente
getElementById>querySelector>getElementsByClassName, porque pensé quegetElementsByClassNamedebería tener el mismo nivel de apoyo quegetElementById?Las funciones
getElementByIdygetElementsByClassNameson muy específicas, mientras quequerySelectoryquerySelectorAllson 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 elElementtipo.