Очистіть елемент
важливість: 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 = '';
}