Мы хотим сделать этот проект с открытым исходным кодом доступным для людей во всем мире. Пожалуйста, помогите нам перевести это руководство на другие языки.
КупитьEPUB/PDF
Поделиться
вернуться к уроку

Очистите элемент

важность: 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 = '';
}

AltStyle によって変換されたページ (->オリジナル) /