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 = '';
}