назад до уроку

Очистіть елемент

важливість: 5

Створіть функцію clear(elem) яка видаляє все з елементу.

<ol id="elem">
  <li>Привіт</li>
  <li>Світ</li>
</ol>

<script>
  function clear(elem) { /* ваш код */ }

  clear(elem); // очищує список
</script>

Перш за все, розглянемо як це не варто робити:

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

Це не спрацює, тому що виклик remove() змістить колекцію elem.childNodes таким чином, що елементи щоразу починатимуться з індексу 0. Але i зростатиме, і в результаті деякі елементи будуть пропущені.

Цикл for..of робить те саме.

Правильним варіантом може бути:

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

Також є більш простий спосіб:

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