Skip to main content

Selectores del DOM

Los selectores son la base de la manipulación del DOM. Antes de poder modificar un elemento, necesitas seleccionarlo. JavaScript ofrece varios métodos para encontrar elementos en el documento.

getElementById

Selecciona un elemento por su atributo id. Retorna un único elemento o null si no existe.
Características:
  • Es el método más rápido
  • Retorna un único elemento (los IDs deben ser únicos)
  • Retorna null si no encuentra el elemento
  • No necesitas el prefijo # como en CSS
Los IDs deben ser únicos en toda la página. Si hay IDs duplicados, este método solo retornará el primero que encuentre.

getElementsByClassName

Selecciona todos los elementos que tienen una clase CSS específica. Retorna una HTMLCollection (similar a un array).
Características:
  • Retorna una colección viva (se actualiza automáticamente si el DOM cambia)
  • Puedes iterar sobre ella con un bucle for
  • No necesitas el prefijo . como en CSS
  • Si no encuentra elementos, retorna una colección vacía (length = 0)
Las HTMLCollection son “vivas”, lo que significa que se actualizan automáticamente. Ten cuidado al modificar elementos mientras iteras, ya que la colección puede cambiar durante el bucle.

getElementsByTagName

Selecciona todos los elementos de un tipo de etiqueta HTML específico.
Ejemplo práctico:
Características:
  • Retorna una HTMLCollection viva
  • Útil para seleccionar todos los elementos de un tipo
  • Puedes usar '*' para seleccionar todos los elementos

querySelector

Selecciona el primer elemento que coincide con un selector CSS. Retorna un único elemento o null.

Ejemplos de Selectores CSS

querySelector acepta cualquier selector CSS válido, lo que lo hace muy flexible y poderoso.

querySelectorAll

Selecciona todos los elementos que coinciden con un selector CSS. Retorna una NodeList.
Ejemplo práctico:
Diferencias con getElementsByClassName:
  • querySelectorAll retorna una NodeList estática (no se actualiza automáticamente)
  • getElementsByClassName retorna una HTMLCollection viva (se actualiza automáticamente)
  • NodeList soporta el método forEach(), HTMLCollection no
  • querySelectorAll acepta cualquier selector CSS complejo
  • getElementsByClassName solo acepta nombres de clases simples
  • getElementsByClassName es ligeramente más rápido
  • Para la mayoría de casos, la diferencia es insignificante
  • Elige el que te resulte más conveniente para tu caso de uso

Comparación de Métodos

¿Cuál Usar?

1

Para un elemento único con ID

Usa getElementById - es el más rápido y directo.
2

Para múltiples elementos con selectores complejos

Usa querySelectorAll - acepta cualquier selector CSS.
3

Para múltiples elementos simples por clase

Usa getElementsByClassName o querySelectorAll - ambos funcionan bien.
4

Cuando necesitas forEach

Usa querySelectorAll - soporta forEach nativamente.

Selección en Contexto

Todos estos métodos también funcionan en elementos específicos, no solo en document:
Buscar dentro de un elemento específico es más rápido que buscar en todo el documento, especialmente en páginas grandes.

Próximos Pasos

Manipulación del DOM

Aprende a modificar elementos seleccionados

Event Listeners

Añade interactividad con eventos