El Modelo de Objetos del Documento (DOM) es una representación estructurada de los documentos HTML y XML, que permite que un documento sea manipulado de manera programática. La manipulación dinámica del DOM es fundamental en el desarrollo web, pues permite modificar el contenido, la estructura y el estilo de una página de manera interactiva. En este capítulo, exploraremos cómo JavaScript puede ser usado para manipular el DOM, facilitando la creación de interfaces dinámicas y responsivas.
El DOM organiza un documento web como un árbol de nodos, donde cada nodo representa una parte del documento (por ejemplo, un elemento, un texto, o un comentario). JavaScript puede acceder y cambiar todos los nodos del DOM.
1. Acceso a Elementos:
– JavaScript proporciona métodos para seleccionar elementos del DOM, como getElementById
, getElementsByClassName
, getElementsByTagName
, y los más versátiles querySelector
y querySelectorAll
.
let div = document.getElementById('miDiv');
let items = document.querySelectorAll('.miClase');
Modificar Elementos:
– Una vez que tienes una referencia a un elemento DOM, puedes modificar sus propiedades, atributos y estilo.
div.textContent = 'Hola mundo'; // Cambia el texto del elemento
div.style.color = 'blue'; // Cambia el color de texto a azul
div.setAttribute('data-id', '123'); // Establece un atributo personalizado
Modificar dinámicamente la estructura del DOM permite añadir, eliminar o mover elementos dentro de la página, facilitando la creación de contenido interactivo.
1. Creación de Nuevos Elementos:
– Puedes crear elementos nuevos utilizando createElement
y añadirlos al DOM con métodos como appendChild
o insertBefore
.
let nuevoElemento = document.createElement('p');
nuevoElemento.textContent = 'Este es un nuevo párrafo';
document.body.appendChild(nuevoElemento); // Añade el párrafo al final del body
Eliminación de Elementos:
– Los elementos pueden ser eliminados del DOM utilizando removeChild
o el más reciente método remove
.
let elementoAEliminar = document.getElementById('viejoElemento');
elementoAEliminar.parentNode.removeChild(elementoAEliminar); // Forma clásica
elementoAEliminar.remove(); // Forma moderna
Manipulación de Clases CSS:
– A menudo es útil cambiar las clases de CSS de un elemento para alterar su estilo. Esto se puede hacer usando classList
.
div.classList.add('nueva-clase'); // Añade una clase
div.classList.remove('vieja-clase'); // Elimina una clase
div.classList.toggle('activo'); // Alterna una clase
La interactividad en las aplicaciones web es manejada a través de eventos, que son acciones o sucesos que ocurren en la página web como clics, cambios de formulario, movimientos de ratón, etc.
1. Manejo de Eventos:
– Puedes asignar manejadores de eventos a elementos para responder a la interacción del usuario.
boton.addEventListener('click', function() {
alert('¡Botón clickeado!');
});
Prevención del Comportamiento Predeterminado:
– En algunos casos, es necesario prevenir el comportamiento predeterminado del navegador, como en el caso de la presentación de un formulario.
form.addEventListener('submit', function(event) {
event.preventDefault(); // Detiene la presentación del formulario
// Lógica para manejar la presentación del formulario
});