Navegar por el DOM
Los siguientes métodos nos permiten acceder a los diferentes nodos del DOM. Muchos de ellos, además de usarlos desde document, también se pueden usar desde cualquier elemento HTML que tengamos referenciado en el código.
- document.documentElement → Representa el elemento <html>
- document.head → Representa el elemento
- document.body → Representa el elemento
- document.getElementById("id") → Devuelve el elemento que tiene el id especificado, o null si no existe.
- document.getElementsByClassName("class") → Devuelve un array de elementos que tengan la clase CSS especificada. Al llamar a este método desde otro nodo distinto de document, buscará los elementos a partir de dicho nodo.
- document.getElementsByTagName("HTML tag") → Devuelve un array con los elementos con la etiqueta HTML especificada (Por ejemplo "p" → párrafos), que estén dentro del nodo referenciado.
- element.firstElementChild o element.lastElementChild → Devuelve el primer (o último) elemento HTML contenido (hijo) en el nodo actual. También existen las propiedades firstChild y lastChild. La diferencia es que estas últimas tienen en cuenta cualquier tipo de nodo, incluyendo texto y comentarios.
- element.children → Devuelve una colección con todos los elementos HTML que contiene el nodo referenciado. La colección no es de tipo Array sino HTMLCollection, que es similar, pero más limitada. También podemos utilizar element.childNodes, pero en este caso nos devolverá también los nodos de texto y comentarios como parte de la colección.
- element.parentNode → Devuelve el nodo padre de un elemento.
- element.nextElementSibling → Devuelve el siguiente nodo del mismo nivel (el hermano). El método previousElementSibling devuelve el anterior. Estas propiedades solo tienen en cuenta nodos del tipo HTML. También tenemos las propiedades nextSibling o previousSibling que tienen en cuenta el texto y los comentarios.
Query Selector
Además de los métodos vistos anteriormente para obtener elementos del DOM, existen unos más avanzados que utilizan selectores CSS para devolver los elementos HTML que cumplan ciertas características. Estos métodos se pueden llamar desde document, o desde cualquier nodo HTML del DOM.
- document.querySelector("selector") → Devuelve el primer elemento que coincide con el selector.
- document.querySelectorAll("selector") → Devuelve una colección con todos los elementos que coinciden con el selector.
- element.closest("selector") → Navega hacia arriba por el árbol del DOM hasta encontrar un nodo antecesor del actual que cumpla con el selector.
Ejemplo usando querySelector() y querySelectorAll():