Очистите элемент
важность: 5
Создайте функцию clear(elem)
, которая удаляет всё содержимое из 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 = '';
}