CheatSheet (JS DOM)
CheatSheet (JS DOM)
## Seleccionar Elementos
Manipulación de Elementos
Cambiar Contenido
Modificar Atributos
// Métodos genéricos
elemento.setAttribute("data-id", "123");
let valor = elemento.getAttribute("title");
elemento.removeAttribute("alt");
Modificar Clases
Estilos en Línea
// Resetear estilos
elemento.style.removeProperty("color");
// Desde cero
const nuevoDiv = document.createElement("div");
Insertar Elementos
// Posiciones específicas
elemento.insertAdjacentHTML("beforeend", "<span>Hola</span>");
/* Opciones:
- beforebegin (hermano anterior)
- afterbegin (primer hijo)
- beforeend (último hijo)
- afterend (hermano siguiente)
*/
Eliminar Elementos
// Alternativa tradicional
padre.removeChild(elemento);
Eventos en el DOM
Manejo de Eventos
// Objeto Event
elemento.addEventListener("click", (e) => {
e.preventDefault(); // Evitar comportamiento default
e.stopPropagation(); // Detener burbujeo
console.log(e.target); // Elemento origen
});
Delegación de Eventos
Eventos Comunes
// Formularios
form.addEventListener("submit", manejarEnvio);
input.addEventListener("input", validarCampo);
// Ventana
window.addEventListener("resize", ajustarLayout);
window.addEventListener("load", init); // Espera todos los recursos
// Jerarquía
elemento.parentElement;
elemento.children; // Solo elementos hijos
elemento.childNodes; // Incluye nodos de texto
Almacenamiento Temporal
Rendimiento
Buenas Prácticas
// MutationObserver
const observer = new MutationObserver((mutations) => {
mutations.forEach(m => console.log("Cambio detectado:", m));
});
observer.observe(elemento, {
attributes: true,
childList: true
});
Utilidades Avanzadas
CSS y Animaciones
// Detectar transiciones
elemento.addEventListener("transitionend", () => {
console.log("Transición completada");
});
IntersectionObserver
// Detectar visibilidad
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if(entry.isIntersecting) {
entry.target.classList.add("visible");
}
});
});
observer.observe(elemento);
Inicialización
Polyfills y Fallbacks
Aquí tienes una lista completa de eventos comunes del DOM con ejemplos y
ejercicios prácticos:
3. Eventos de Formularios
submit - Formulario enviado
4. Eventos de Ventana
load - Página y recursos cargados
5. Eventos Touch
touchstart - Toque iniciado
7. Eventos de Medios
Ejemplos Prácticos
1. Click Básico
2. Validación de Formulario
4. Efecto Hover
5. Scroll Infinito
window.addEventListener("scroll", () => {
if (window.innerHeight + window.scrollY >= document.body.offsetHeigh
t) {
cargarMasContenido();
}
});