tilbage til lektionen
Dette materiale er kun tilgængeligt på følgende sprog: English, Español, Français, Italiano, 日本語, 한국어, Русский, Türkçe, Українська, Oʻzbek, 简体中文. Hjælp os med at oversætte til Dansk.

Slet et element

vigtighed: 5

Opret en funktion clear(elem) der fjerner alt indhold fra et element.

<ol id="elem">
  <li>Hej</li>
  <li>Verden</li>
</ol>

<script>
  function clear(elem) { /* din kode */ }

  clear(elem); // sletter listen
</script>

Lad os først se hvordan man ikke skal gøre det:

function clear(elem) {
  for (let i=0; i < elem.childNodes.length; i++) {
      elem.childNodes[i].remove();
  }
}

Dette vil ikke virke, fordi kaldet til remove() flytter samlingen elem.childNodes. Efter fjernelse af et element flyttes de resterende nedad. Men i øges alligevel, så nogle elementer vil blive sprunget over.

Løkken for..of gør det samme.

Den rigtige variant kunne være:

function clear(elem) {
  while (elem.firstChild) {
    elem.firstChild.remove();
  }
}

Der er også en enklere måde at gøre det samme på:

function clear(elem) {
  elem.innerHTML = '';
}