相关疑难解决方法(0)

使用node.childNodes.forEach删除childNodes

传统上,在Javascript中删除节点子节点的建议方法是执行以下操作:

while(node.firstChild) {
    node.removeChild(node.firstChild);
}
Run Code Online (Sandbox Code Playgroud)

最近,我尝试使用内置的forEach()方法删除所有节点的子节点:

node.childNodes.forEach(child => {
    node.removeChild(child);
}
Run Code Online (Sandbox Code Playgroud)

这没有像我预期的那样发挥作用.forEach停止执行,而不是删除所有子节点,而是留下剩余的节点.我最终要做的是使用Array.from:

Array.from(node.childNodes)
Run Code Online (Sandbox Code Playgroud)

然后我可以用forEach删除节点.我不能使用上面提到的传统方法的原因是因为某些原因,一个孩子总是被遗忘,导致无限循环.

为什么childNodes.forEach方法没有像我想的那样删除所有节点?我有什么误会?

javascript dom nodelist ecmascript-6

1
推荐指数
1
解决办法
1503
查看次数

标签 统计

dom ×1

ecmascript-6 ×1

javascript ×1

nodelist ×1