Ripulisci l'elemento

Prima, vediamo come non farlo:

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

Questo non funziona perché la chiamata a remove() muove la collezione elem.childNodes, quindi gli elementi partono ogni volta dall’indice 0. Ma i aumenta, perciò alcuni elementi verranno saltati.

Il loop for..of fa lo stesso.

La corretta variante potrebbe essere:

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

C’è un modo più semplice per fare lo stesso:

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