El DOM i la Manipulació d'Elements HTML
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
textContent
itype
- 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!