Formas de Seleccionar Elementos del DOM en JavaScript

Formas de Seleccionar Elementos del DOM en JavaScript

Introducción

HTML/JavaScript — Document Object Model (DOM) | by Mauricio Garcia | Medium

Una de las tareas más comunes en el desarrollo web es la manipulación del DOM (Document Object Model). Para poder interactuar con los elementos de una página web, primero debemos seleccionarlos. JavaScript ofrece diversas formas de seleccionar elementos del DOM, cada una con sus propias ventajas y casos de uso específicos. En este artículo, veremos las diferentes maneras de seleccionar elementos del DOM utilizando JavaScript y cómo elegir la mejor opción según el contexto.

¿Qué es el DOM y por qué es importante seleccionarlo?

El DOM es una representación estructurada del contenido de una página web en forma de árbol, donde cada nodo representa un elemento HTML. Al poder seleccionar estos nodos con JavaScript, los desarrolladores pueden modificar su contenido, cambiar su estilo o agregarles funcionalidades dinámicas.

Seleccionar correctamente los elementos es el primer paso para cualquier tipo de manipulación del DOM, como cambiar el texto, mover un elemento o responder a eventos del usuario.

Métodos más comunes para seleccionar elementos del DOM

1. getElementById

Este es uno de los métodos más utilizados y también uno de los más rápidos. getElementById selecciona un elemento HTML único basado en su atributo id. Como los IDs deben ser únicos en un documento HTML, este método siempre devuelve un solo elemento.

Ejemplo

				
					// Seleccionar un elemento con id="header"
const header = document.getElementById("header");
header.style.color = "blue"; // Cambiar el color del texto a azul
				
			

Uso recomendado

  • Cuando el elemento tiene un ID único.
  • Es ideal para seleccionar elementos específicos en el DOM sin preocuparse por la duplicación.

2. getElementsByClassName

Este método selecciona todos los elementos que comparten una clase. Devuelve una colección de elementos, por lo que es útil cuando varios elementos tienen el mismo nombre de clase.

Ejemplo

				
					// Seleccionar todos los elementos con la clase "item"
const items = document.getElementsByClassName("item");

// Cambiar el color de texto de todos los elementos seleccionados
for (let i = 0; i < items.length; i++) {
  items[i].style.color = "red";
}
				
			

Uso recomendado

  • Para seleccionar múltiples elementos que comparten una misma clase.
  • Cuando necesitas aplicar una acción a varios elementos similares en una página.

3. getElementsByTagName

Este método selecciona todos los elementos que coinciden con un nombre de etiqueta específico (por ejemplo, div, p, ul). Similar a getElementsByClassName, también devuelve una colección de elementos.

Ejemplo

				
					// Seleccionar todos los elementos <p>
const paragraphs = document.getElementsByTagName("p");

// Cambiar el color de fondo de todos los párrafos
for (let i = 0; i < paragraphs.length; i++) {
  paragraphs[i].style.backgroundColor = "yellow";
}
				
			

Uso recomendado

  • Para seleccionar todos los elementos de un tipo específico, como todos los párrafos <p> o todos los divs <div>.
  • Útil cuando se desea manipular todos los elementos de una misma etiqueta en el documento.

4. querySelector

Este método permite seleccionar el primer elemento que coincida con un selector CSS. Es muy poderoso ya que permite utilizar cualquier selector CSS, lo que ofrece una gran flexibilidad.

Ejemplo

				
					// Seleccionar el primer elemento con la clase "highlight"
const highlight = document.querySelector(".highlight");
highlight.style.fontSize = "20px"; // Cambiar el tamaño de la fuente
				
			

Uso recomendado

  • Cuando quieres seleccionar solo el primer elemento que coincida con un selector CSS.
  • Ideal para seleccionar elementos con más precisión (por clase, ID, atributos o pseudoclases).

5. querySelectorAll

A diferencia de querySelector, este método selecciona todos los elementos que coinciden con un selector CSS. Devuelve una NodeList, lo que permite recorrer y aplicar modificaciones a múltiples elementos.

Ejemplo

				
					// Seleccionar todos los elementos <li> dentro de una lista con clase "menu"
const menuItems = document.querySelectorAll(".menu li");

// Aplicar un estilo a cada elemento <li>
menuItems.forEach(item => {
  item.style.border = "1px solid black";
});
				
			

Uso recomendado

  • Para seleccionar varios elementos que coincidan con un selector CSS.
  • Permite aplicar estilos y cambios de manera eficiente a un conjunto de elementos.

Comparación entre los métodos de selección

MétodoSeleccionaRetornaEspecificidad
getElementByIdUn elemento por idUn solo elementoAlta (IDs son únicos)
getElementsByClassNameTodos los elementos con una claseHTMLCollectionMedia
getElementsByTagNameTodos los elementos por nombre de etiquetaHTMLCollectionBaja
querySelectorEl primer elemento que coincida con un selector CSSUn solo elementoAlta (flexible)
querySelectorAllTodos los elementos que coincidan con un selector CSSNodeListAlta (flexible)

Buenas prácticas para seleccionar elementos del DOM

  1. Usa getElementById cuando sea posible: Es el método más rápido y más eficiente ya que los IDs son únicos.
  2. Ten en cuenta el rendimiento con querySelectorAll: Aunque muy poderoso, querySelectorAll puede ser más lento si seleccionas muchos elementos. Usar selectores más específicos puede ayudar a optimizar el rendimiento.
  3. Usa métodos modernos: querySelector y querySelectorAll son más flexibles que los métodos anteriores (getElementsByClassName, getElementsByTagName), lo que los convierte en mejores opciones para proyectos nuevos.
  4. Evita la sobreselección: No siempre es necesario seleccionar un gran número de elementos; intenta limitar la cantidad de selecciones de DOM que realices para mejorar el rendimiento de la página.

Conclusión

Seleccionar elementos del DOM es un paso fundamental para interactuar con el contenido de una página web usando JavaScript. Dependiendo de la situación, diferentes métodos como getElementById, querySelector, o getElementsByClassName pueden ser más adecuados. Con una comprensión clara de estas herramientas, los desarrolladores pueden escribir código eficiente y flexible para manipular la estructura de las páginas web.

Links de referencia: Localizando elementos DOM usando selectoresMétodos modernos para buscar elementos en el DOMManipulación de DOM en JavaScript

Facebook
X
LinkedIn
Reddit
Pinterest
Threads

Post relacionados

Post recientes

Search