Effacer l'élément
importance: 5
Créez une fonction clear(elem)
qui supprime tout de l’élément.
<ol id="elem">
<li>Hello</li>
<li>World</li>
</ol>
<script>
function clear(elem) { /* votre code */ }
clear(elem); // efface la liste
</script>
Voyons d’abord comment ne pas le faire :
function clear(elem) {
for (let i=0; i < elem.childNodes.length; i++) {
elem.childNodes[i].remove();
}
}
Cela ne fonctionnera pas, car l’appel à remove()
décale la collection elem.childNodes
, donc les éléments commencent à partir de l’index 0
à chaque fois. Mais i
augmente et certains éléments seront ignorés.
La boucle for..of
fait de même.
La bonne variante pourrait être :
function clear(elem) {
while (elem.firstChild) {
elem.firstChild.remove();
}
}
Et il existe également un moyen plus simple de faire de même :
function clear(elem) {
elem.innerHTML = '';
}