Limpiar el elemento
importancia: 5
Crea una función clear(elem)
que remueva todo del elemento.
<ol id="elem">
<li>Hola</li>
<li>mundo</li>
</ol>
<script>
function clear(elem) { /* tu código */ }
clear(elem); // borra la lista
</script>
Primero veamos cómo no hacerlo:
function clear(elem) {
for (let i=0; i < elem.childNodes.length; i++) {
elem.childNodes[i].remove();
}
}
Eso no funciona, porque la llamada a remove()
desplaza la colección elem.childNodes
, entonces los elementos comienzan desde el índice 0
cada vez. Pero i
se incrementa y algunos elementos serán saltados.
El bucle for..of
también hace lo mismo.
Una variante correcta puede ser:
function clear(elem) {
while (elem.firstChild) {
elem.firstChild.remove();
}
}
Y también una manera más simple de hacer lo mismo:
function clear(elem) {
elem.innerHTML = '';
}