Выбор ответа Middle DOM API обновлено
Удаление элементов из живой коллекции
Вопрос
На странице 4 элемента с классом item. Сколько их останется после кода?
const items = document.getElementsByClassName('item');
for (let i = 0; i < items.length; i++) {
items[i].classList.remove('item');
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 2. getElementsByClassName возвращает живую HTMLCollection.
Варианты ответа
- 0
- 1
- 4
- 2правильный ответ
Разбор
getElementsByClassName возвращает живую HTMLCollection. Когда у элемента убирают класс, он сразу выпадает из коллекции, остальные сдвигаются, а i растёт. Итерации: i=0 убирает первый (в коллекции 3), i=1 убирает третий исходный (в коллекции 2), i=2 уже не меньше длины 2. Останется 2 элемента. Ответ 0 был бы при статичном снимке (querySelectorAll). 4 означало бы, что коллекция не меняется вообще, а 1 не совпадает с ходом цикла.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.