¿Qué es el DOM?
El Modelo de Objetos del Documento (DOM, por sus siglas en inglés) es una interfaz de programación para documentos HTML y XML. Representa la estructura del documento como un árbol de nodos, donde cada nodo es una parte del documento (como un elemento, un atributo o un texto).
Conceptos Clave del DOM
- Nodo: Cada punto en el árbol del DOM es un nodo. Los nodos pueden ser elementos, atributos, textos, etc.
- Elemento: Un tipo específico de nodo que representa una etiqueta HTML.
- Atributo: Un nodo que proporciona información adicional sobre un elemento.
- Texto: Un nodo que contiene el contenido textual de un elemento.
Estructura del DOM
El DOM organiza los elementos de un documento HTML en una estructura jerárquica. Aquí hay un ejemplo simple de un documento HTML y su representación en el DOM:
<!DOCTYPE html> <html> <head> <title>Mi Documento</title> </head> <body> <h1>Hola Mundo</h1> <p>Este es un párrafo.</p> </body> </html>
La estructura del DOM para este documento sería:
- Document - html - head - title - "Mi Documento" - body - h1 - "Hola Mundo" - p - "Este es un párrafo."
Interactuando con el DOM usando JavaScript
JavaScript proporciona varias formas de interactuar con el DOM. A continuación, veremos cómo seleccionar elementos, manipularlos y crear nuevos elementos.
Selección de Elementos
Para interactuar con los elementos del DOM, primero necesitamos seleccionarlos. Aquí hay algunas formas comunes de hacerlo:
getElementById
Selecciona un elemento por su ID.
getElementsByClassName
Selecciona todos los elementos con una clase específica.
getElementsByTagName
Selecciona todos los elementos con una etiqueta específica.
querySelector
Selecciona el primer elemento que coincide con un selector CSS.
querySelectorAll
Selecciona todos los elementos que coinciden con un selector CSS.
Manipulación de Elementos
Una vez que hemos seleccionado un elemento, podemos manipularlo de varias maneras.
Cambiar el Contenido de Texto
Cambiar el HTML Interno
let paragraph = document.querySelector('p'); paragraph.innerHTML = '<strong>Texto en negrita</strong>';
Cambiar Atributos
Cambiar Estilos
let header = document.getElementById('header'); header.style.color = 'blue'; header.style.fontSize = '24px';
Creación y Eliminación de Elementos
Crear un Nuevo Elemento
let newDiv = document.createElement('div'); newDiv.textContent = 'Este es un nuevo div'; document.body.appendChild(newDiv);
Eliminar un Elemento
Ejercicio Práctico
Ejercicio 1: Manipulación Básica del DOM
- Crea un archivo HTML con el siguiente contenido:
<!DOCTYPE html> <html> <head> <title>Manipulación del DOM</title> </head> <body> <h1 id="header">Título Original</h1> <p class="text">Este es un párrafo.</p> <button id="changeText">Cambiar Texto</button> <button id="addElement">Agregar Elemento</button> </body> </html>
- Crea un archivo JavaScript y enlázalo en el archivo HTML. Luego, agrega el siguiente código JavaScript:
document.getElementById('changeText').addEventListener('click', function() { let header = document.getElementById('header'); header.textContent = 'Título Modificado'; }); document.getElementById('addElement').addEventListener('click', function() { let newParagraph = document.createElement('p'); newParagraph.textContent = 'Este es un nuevo párrafo.'; document.body.appendChild(newParagraph); });
Solución
El código JavaScript anterior agrega dos manejadores de eventos a los botones. Cuando se hace clic en el botón "Cambiar Texto", se cambia el contenido del encabezado. Cuando se hace clic en el botón "Agregar Elemento", se agrega un nuevo párrafo al cuerpo del documento.
Conclusión
En esta lección, hemos aprendido qué es el DOM y cómo interactuar con él usando JavaScript. Hemos cubierto cómo seleccionar elementos, manipular su contenido y atributos, y cómo crear y eliminar elementos. Estos conceptos son fundamentales para trabajar con JavaScript en el contexto de la manipulación de documentos HTML.
En la siguiente lección, profundizaremos en la selección y manipulación de elementos del DOM, explorando técnicas más avanzadas y prácticas comunes.
JavaScript: De Principiante a Avanzado
Módulo 1: Introducción a JavaScript
- ¿Qué es JavaScript?
- Configuración de tu Entorno de Desarrollo
- Tu Primer Programa en JavaScript
- Sintaxis y Conceptos Básicos de JavaScript
- Variables y Tipos de Datos
- Operadores Básicos
Módulo 2: Estructuras de Control
- Sentencias Condicionales
- Bucles: for, while, do-while
- Sentencias Switch
- Manejo de Errores con try-catch
Módulo 3: Funciones
- Definición y Llamada de Funciones
- Expresiones de Función y Funciones Flecha
- Parámetros y Valores de Retorno
- Ámbito y Closures
- Funciones de Orden Superior
Módulo 4: Objetos y Arrays
- Introducción a los Objetos
- Métodos de Objeto y la Palabra Clave 'this'
- Arrays: Conceptos Básicos y Métodos
- Iteración sobre Arrays
- Desestructuración de Arrays
Módulo 5: Objetos y Funciones Avanzadas
- Prototipos y Herencia
- Clases y Programación Orientada a Objetos
- Módulos e Importación/Exportación
- JavaScript Asíncrono: Callbacks
- Promesas y Async/Await
Módulo 6: El Modelo de Objetos del Documento (DOM)
- Introducción al DOM
- Selección y Manipulación de Elementos del DOM
- Manejo de Eventos
- Creación y Eliminación de Elementos del DOM
- Manejo y Validación de Formularios
Módulo 7: APIs del Navegador y Temas Avanzados
- Almacenamiento Local y de Sesión
- Fetch API y AJAX
- WebSockets
- Service Workers y Aplicaciones Web Progresivas (PWAs)
- Introducción a WebAssembly
Módulo 8: Pruebas y Depuración
- Depuración de JavaScript
- Pruebas Unitarias con Jest
- Pruebas de Integración
- Pruebas de Extremo a Extremo con Cypress
Módulo 9: Rendimiento y Optimización
- Optimización del Rendimiento de JavaScript
- Gestión de Memoria
- Manipulación Eficiente del DOM
- Carga Perezosa y División de Código
Módulo 10: Frameworks y Librerías de JavaScript
- Introducción a React
- Gestión de Estado con Redux
- Conceptos Básicos de Vue.js
- Conceptos Básicos de Angular
- Elegir el Framework Adecuado