- Apunts
- JavaScript
- Lliçó 10 de 14
El DOM i la manipulació d'elements HTML
El DOM des de JavaScript: seleccionar elements, canviar-ne el text i l’HTML, estils i classes amb classList, crear i eliminar nodes i recórrer l’arbre.
El Document Object Model (DOM) és una interfície de programació que representa la pàgina web com una estructura jeràrquica de nodes. Gràcies al DOM, podem accedir, modificar, afegir i eliminar elements HTML mitjançant JavaScript.
Estructura del DOM
Cada element HTML es representa com un node dins un arbre. El node arrel és <html>, amb fills com <head> i <body>, i així successivament.
Accés a Elements
Mètodes de selecció
document.getElementById("id");
document.getElementsByClassName("classe");
document.getElementsByTagName("etiqueta");
document.querySelector("selectorCSS");
document.querySelectorAll("selectorCSS");
Exemples
const titol = document.getElementById("titol");
const inputs = document.querySelectorAll("input");
Activitats de selecció
- Afegeix un ID a un
<input>i imprimeix-lo ambgetElementById() - Selecciona l’element per classe i mostra’l per consola
- Fes servir
getElementsByTagName()per seleccionar tots els inputs - Usa
querySelector()per accedir a un element per selector CSS - Fes servir
querySelectorAll()per obtenir diversos elements
Manipulació d'elements
Propietats comunes
element.textContent = "Hola món";
element.innerHTML = "<b>Hola</b>";
element.value = "nou valor";
element.src = "nova-imatge.jpg";
Activitats de manipulació
- Fer visible una contrasenya i canviar el text del botó amb
textContentitype - Modificar el text d’un paràgraf
- Afegir un nou element a una llista amb
innerHTML
innerHTML vs textContent
| Propietat | Funció |
|---|---|
textContent |
Text pla (segur i ràpid) |
innerHTML |
Pot contenir HTML (més potent però menys segur) |
Estils en línia
element.style.color = "red";
element.style.textAlign = "center";
Activitats amb estils
- Canviar el color d’un
<h1>segons un<input type="color">
Gestió de Classes
element.classList.add("actiu");
element.classList.remove("actiu");
element.classList.toggle("actiu");
element.classList.replace("antiga", "nova");
element.classList.contains("visible"); // retorna true/false
Activitats amb classList
- Afegeix una classe a un div
- Elimina la classe existent
- Canvia la classe per una altra
- Aplica toggle per afegir/eliminar una classe
Crear i eliminar elements
const nou = document.createElement("div");
document.getElementById("contenidor").appendChild(nou);
// Eliminar
document.getElementById("element").remove(); // modern
Activitats
- Afegir un element nou al DOM
- Eliminar un element amb
remove()oremoveChild()
Navegació pel DOM
element.childNodes;
element.children;
element.firstChild;
element.firstElementChild;
element.lastChild;
element.lastElementChild;
element.nextSibling;
element.nextElementSibling;
element.previousSibling;
element.previousElementSibling;
element.parentNode;
Activitats amb navegació
- Elimina el primer fill d’un node
- Elimina l’últim fill d’un node
- Ressalta el següent element abans d’eliminar l’actual
- Ressalta el fill anterior abans d’eliminar el final
- Mostra el pare d’un node
Aquest capítol és essencial per comprendre com interactuar dinàmicament amb una pàgina HTML utilitzant JavaScript. El DOM et permet controlar tota la interfície i respondre a accions de l’usuari!