Ce face append / prepend / before / after
append adaugă la sfârșitul conținutului unui element, prepend la început. before și after adaugă lângă element, ca frați (înainte, respectiv după el).
Toate primesc oricâte argumente, iar textele simple devin noduri de text (nu sunt interpretate ca HTML, deci sunt sigure). Un element care există deja în pagină este mutat, nu copiat. Metodele nu returnează nimic.
Parametri
| Parametru | Descriere |
|---|---|
noduri |
Elemente, fragmente sau texte. |
Ce returnează
undefined.
Exemple
Exemplul 1: Cele patru poziții
<ul id="lista"><li id="b">B</li></ul>
<script>
const lista = document.getElementById("lista");
const b = document.getElementById("b");
const li = (t) => Object.assign(document.createElement("li"), { textContent: t });
lista.append(li("D"));
lista.prepend(li("A"));
b.after(li("C"));
lista.before("Listă: ");
console.log([...lista.children].map((x) => x.textContent).join(" "));
console.log(lista.previousSibling.textContent);
</script>
Rezultat în browser
A B C D
Listă:
Exemplul 2: Un element existent este mutat
const primul = document.querySelector("#lista li");
document.querySelector("#lista").append(primul);
console.log([...document.querySelectorAll("#lista li")].map((x) => x.textContent).join(" "));
Rezultat în browser
B C D A
Greșeli frecvente
- Dai un text cu HTML:
append("<b>nou</b>")afișează etichetele ca text. Pentru HTML foloseșteinsertAdjacentHTML.
Comenzi înrudite
document.createElement: Creează un element HTML nou (încă invizibil), pe care îl completezi și apoi îl adaugi în pagină.appendChild / removeChild / insertBefore: Metodele clasice pentru adăugarea, ștergerea și înlocuirea nodurilor, apelate pe părinte.insertAdjacentHTML / insertAdjacentElement: Inserează HTML, un element sau text într-una din patru poziții față de element, fără să refacă restul conținutului.