Manipulación del DOM
Manipulación del DOM Fundamental
Section titled “Manipulación del DOM ”Selección de elementos Básico
Section titled “Selección de elementos ”Métodos tradicionales
Section titled “Métodos tradicionales”// Por IDconst elemento = document.getElementById('miId');
// Por claseconst elementos = document.getElementsByClassName('miClase');
// Por etiquetaconst parrafos = document.getElementsByTagName('p');Selectores modernos
Section titled “Selectores modernos”// Seleccionar un elementoconst elemento = document.querySelector('.miClase');
// Seleccionar todos los elementosconst elementos = document.querySelectorAll('.miClase');
// Selectores complejosconst enlaces = document.querySelectorAll('nav a.activo');Modificación de contenido y estilos Importante
Section titled “Modificación de contenido y estilos ”Modificar contenido
Section titled “Modificar contenido”const elemento = document.querySelector('#miElemento');
// Texto planoelemento.textContent = 'Nuevo texto';
// HTMLelemento.innerHTML = '<strong>Texto en negrita</strong>';
// Atributoselemento.setAttribute('class', 'destacado');elemento.id = 'nuevoId';Modificar estilos
Section titled “Modificar estilos”const elemento = document.querySelector('#miElemento');
// Estilos directoselemento.style.color = 'red';elemento.style.backgroundColor = '#f0f0f0';elemento.style.padding = '10px';
// Clases CSSelemento.classList.add('destacado');elemento.classList.remove('oculto');elemento.classList.toggle('activo');elemento.classList.replace('viejo', 'nuevo');Creación y eliminación de elementos Avanzado
Section titled “Creación y eliminación de elementos ”Crear elementos
Section titled “Crear elementos”// Crear elementoconst nuevoParrafo = document.createElement('p');nuevoParrafo.textContent = 'Nuevo párrafo';
// Crear textoconst texto = document.createTextNode('Texto simple');
// Crear fragmento (para múltiples elementos)const fragmento = document.createDocumentFragment();for (let i = 0; i < 3; i++) { const li = document.createElement('li'); li.textContent = `Item ${i + 1}`; fragmento.appendChild(li);}Insertar elementos
Section titled “Insertar elementos”const contenedor = document.querySelector('#contenedor');const nuevoElemento = document.createElement('div');
// Añadir al finalcontenedor.appendChild(nuevoElemento);
// Añadir en posición específicacontenedor.insertBefore(nuevoElemento, contenedor.firstChild);
// Métodos modernoscontenedor.append(nuevoElemento);contenedor.prepend(nuevoElemento);contenedor.before(nuevoElemento);contenedor.after(nuevoElemento);Eliminar elementos
Section titled “Eliminar elementos”const elemento = document.querySelector('#eliminar');
// Eliminar directamenteelemento.remove();
// Eliminar desde el padreelemento.parentNode.removeChild(elemento);Navegación por el DOM Intermedio
Section titled “Navegación por el DOM ”Relaciones entre nodos
Section titled “Relaciones entre nodos”const elemento = document.querySelector('#miElemento');
// Padresconst padre = elemento.parentElement;const padreNodo = elemento.parentNode;
// Hijosconst hijos = elemento.children;const primerHijo = elemento.firstElementChild;const ultimoHijo = elemento.lastElementChild;
// Hermanosconst siguiente = elemento.nextElementSibling;const anterior = elemento.previousElementSibling;Mejores prácticas Recomendado
Section titled “Mejores prácticas ”Minimizar manipulaciones del DOM
Section titled “Minimizar manipulaciones del DOM”// ❌ Malofor (let i = 0; i < 100; i++) { contenedor.innerHTML += '<div>' + i + '</div>';}
// ✅ Buenoconst fragmento = document.createDocumentFragment();for (let i = 0; i < 100; i++) { const div = document.createElement('div'); div.textContent = i; fragmento.appendChild(div);}contenedor.appendChild(fragmento);Usar selectores eficientes
Section titled “Usar selectores eficientes”// ❌ Malodocument.querySelectorAll('div span a');
// ✅ Buenodocument.getElementById('miId');document.querySelector('.clase-especifica');Cachear referencias a elementos
Section titled “Cachear referencias a elementos”// ❌ Malofunction actualizar() { document.getElementById('miElemento').textContent = 'Nuevo';}
// ✅ Buenoconst elemento = document.getElementById('miElemento');function actualizar() { elemento.textContent = 'Nuevo';}
🐝