传统上,在Javascript中删除节点子节点的建议方法是执行以下操作:
while(node.firstChild) {
    node.removeChild(node.firstChild);
}
最近,我尝试使用内置的forEach()方法删除所有节点的子节点:
node.childNodes.forEach(child => {
    node.removeChild(child);
}
这没有像我预期的那样发挥作用.forEach停止执行,而不是删除所有子节点,而是留下剩余的节点.我最终要做的是使用Array.from:
Array.from(node.childNodes)
然后我可以用forEach删除节点.我不能使用上面提到的传统方法的原因是因为某些原因,一个孩子总是被遗忘,导致无限循环.
为什么childNodes.forEach方法没有像我想的那样删除所有节点?我有什么误会?