regresar a la lección

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