Node.contains / hasChildNodes / normalize în JavaScript

Pagina web (DOM) Toate browserele

Verifică dacă un nod se află în interiorul altuia sau are copii și unește nodurile de text alăturate.

Sintaxă
parinte.contains(nod)
nod.hasChildNodes()
element.normalize()

Ce face Node.contains / hasChildNodes / normalize

a.contains(b) returnează true dacă b este a însuși sau se află oriunde în interiorul lui. Folosirea clasică: închiderea unui meniu la un clic în afara lui.

hasChildNodes() spune dacă nodul are copii (inclusiv noduri de text, chiar și cele doar cu spații). normalize() unește nodurile de text alăturate și le șterge pe cele goale.

Parametri

Parametru Descriere
nod Pentru contains: nodul căutat.

Ce returnează

contains și hasChildNodes: true sau false. normalize: undefined.

Exemple

Exemplul 1: Închiderea meniului la clic în afară

const meniu = document.querySelector(".meniu");

document.addEventListener("click", (e) => {
  if (!meniu.contains(e.target)) {
    meniu.hidden = true;
    console.log("meniu închis");
  }
});

Rezultat în browser

meniu închis

Exemplul 2: Noduri de text

const p = document.createElement("p");
console.log(p.hasChildNodes());

p.append("Bună ", "ziua", "");
console.log(p.childNodes.length);
p.normalize();
console.log(p.childNodes.length, p.textContent);

Rezultat în browser

false
3
1 Bună ziua

Greșeli frecvente

  • Folosești hasChildNodes() ca să verifici dacă un element e „gol” vizual. Spațiile și rândurile noi din HTML sunt noduri de text; verifică children.length sau textContent.trim().

Comenzi înrudite

  • Element.closest: Urcă de la element spre părinți și returnează primul care se potrivește cu un selector CSS.
  • addEventListener: Rulează o funcție când se întâmplă ceva pe pagină: un clic, o tastă, trimiterea unui formular.
  • Element.matches: Verifică dacă un element se potrivește cu un selector CSS.