"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿En qué se diferencian HTMLCollections, NodeLists y Object Arrays en la manipulación DOM?

¿En qué se diferencian HTMLCollections, NodeLists y Object Arrays en la manipulación DOM?

Publicado el 2024-11-10
Navegar:404

How do HTMLCollections, NodeLists, and Object Arrays Differ in DOM Manipulation?

Distinguir colecciones HTML, listas de nodos y matrices de objetos en DOM

Al acceder a nodos DOM, los desarrolladores suelen encontrar colecciones HTML, listas de nodos y matrices de objetos. Comprender las diferencias entre estas estructuras de datos es crucial para manipular eficazmente la estructura del documento.

HTMLCollections vs. NodeLists

HTMLCollections y NodeLists comparten similitudes como colecciones de nodos, pero tienen características distintivas:

  • Contenido: HTMLCollections contiene solo nodos de elementos, mientras que NodeLists puede contener cualquier tipo de nodo.
  • Métodos: En Además de los métodos comunes a todas las colecciones, HTMLCollections proporciona el método llamadoItem para acceder a elementos por nombre.

Colecciones en vivo versus instantáneas

Las colecciones DOM pueden ser en vivo o instantánea:

  • En vivo: Las colecciones se actualizan automáticamente cuando se realizan cambios en el DOM.
  • Instantánea: Las colecciones permanecen fijas, independientemente de las modificaciones de DOM.

Las colecciones DOM devueltas por los métodos del navegador (p. ej., getElementsByTagName) suelen estar activas, mientras que las selecciones de jQuery son instantáneas.

Arreglos versus arreglos de objetos

Si bien los objetos jQuery aparecen como matrices en los registros de la consola, en realidad son matrices de objetos:

  • Matrices: Se accede a colecciones secuenciales mediante índices numéricos.
  • Matrices de objetos: Matrices donde se accede a los elementos mediante propiedades numéricas y con nombre.

Selección de nodos

Uso de métodos de documento:

  • document.getElementsByTagName("td"): devuelve una colección HTML de todos los elementos td.
  • document.getElementsByClassName("myRow"): devuelve una NodeList de todos los elementos con la clase "myRow".

Usando jQuery:

  • $("td"): selecciona todos los elementos td y devuelve un objeto jQuery, una matriz de objetos.

Script de ejemplo

El script proporcionado demuestra las diferencias entre las estructuras de datos:

  • console.log('[123,"abc",321,"cba"]=[123,"abc",321,"cba"]: Compara matrices.
  • console.log('{ 123:123,abc:"abc",321:321,cba:"cba"}={123:123,abc:"abc",321:321,cba:"cba"}: Compara matrices de objetos con la sintaxis de objetos.
  • console.log('Node=',Node): registra el objeto Node global, que es una matriz de objetos que representa los tipos de nodos.
  • console.log('document.links=', document.links): registra una colección HTML de enlaces.
  • console.log('document.getElementById("myTable")=',document.getElementById("myTable")): registra un solo elemento, no un collection.
  • console.log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow")): registra una NodeList de elementos con la clase "myRow".
  • console.log('document.getElementsByTagName("td")=',document.getElementsByTagName("td")): registra una colección HTML de todos los elementos td.
  • console.log('$(" #myTable")=',$("#myTable")): registra un objeto jQuery que representa el elemento #myTable.
  • console.log('$("td")=',$("td ")): registra una matriz de objetos jQuery que contiene todos los elementos td.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3