Поскольку метод массива forEach
теперь можно вызывать для массива NodeList
. Мне было интересно, почему, если вы вносите изменения в содержимое childNodes
NodeList во время цикла с forEach
, forEach
не обнаруживает изменений.
grid.childNodes.forEach(function(tableRow, index, nodeList) {
tableRow.remove();
});
Здесь я пытаюсь перебрать дочерние элементы таблицы (сетки) и удалить каждого дочернего элемента (tableRow
) из таблицы. Тем не менее, forEach
никогда полностью не перебирает каждый элемент, всегда пропуская один последний tableRow
, чтобы быть remove
d. Я думаю, что это как-то связано с живым NodeList childNodes, и forEach не может должным образом следовать за ним или что-то в этом роде.
grid
? - person David says reinstate Monica   schedule 08.07.2018const grid = document.querySelector("table");
- person Dami   schedule 08.07.2018grid.innerHTML = ""
, верно? - person trincot   schedule 08.07.2018parentNode.children
не равно количествуparentNode.childNodes
. - person David says reinstate Monica   schedule 08.07.2018NodeList
, а не обычныйList
имеет значение для меня. Ответы в посте действительно помогают, спасибо. - person Dami   schedule 08.07.2018