Когда я загружаю мою страницу, нодлист получает создан, и это выглядит следующим образом:для ... в цикле, не охватывая все свойства?
[text, h4, text, span, br, input, br, span, br, input, br, span, br, input, br, span, br, input, br]
Я создал простой for
цикл, который через все эти элементы и удаляет каждый из них из DOM. (Все элементы находятся в <section>
)
Вот петля:
for(element in videoTitlesElement.childNodes){
if(!isNaN(element)){
videoTitlesElement.removeChild(
videoTitlesElement.childNodes[element]);
}
}
Но, к концу цикла, Нодлист выглядит следующим образом:
[h4, span, input, span, input, span, input, span, input]
не все элементы получили удален. Зачем?
Спасибо.
Поскольку вы меняете коллекцию при прохождении через нее. Допустим, у вас есть три элемента в коллекции '[A, B, C]'. Цикл 'for..in' будет внутренне иметь индексатор для отслеживания текущего элемента. Таким образом, индексатор равен 0 в начале, что указывает на элемент 'A'. Затем вы удаляете первый элемент, а второй элемент - «B», теперь становится первым. Индексатор теперь продвигается и указывает на 1. Теперь элемент в индексе 1, 'C', удаляется. И поскольку вы можете видеть, что элемент с индексом 0, 'B', нетронутым и пропущен. –