Javascript 将子节点移动到其他父节点只影响其中的一半

Javascript 将子节点移动到其他父节点只影响其中的一半,javascript,html,nodelist,Javascript,Html,Nodelist,我尝试使用NodeList.forEach()将所有子节点从一个父节点移动到另一个父节点,但这只适用于其中的一半 parent.childNodes.forEach(child => newParent.appendChild(child)) 你可以在这里试一试: 我想知道:为什么会这样?移动所有孩子的最佳解决方案是什么 似乎每次都从parent.childNodes中删除子节点 child => newParent.appendChild(child) 正在被处决。因此,您遇

我尝试使用
NodeList.forEach()
将所有子节点从一个父节点移动到另一个父节点,但这只适用于其中的一半

parent.childNodes.forEach(child => newParent.appendChild(child))
你可以在这里试一试:


我想知道:为什么会这样?移动所有孩子的最佳解决方案是什么

似乎每次都从parent.childNodes中删除子节点

child => newParent.appendChild(child)
正在被处决。因此,您遇到了一个问题,因为每次执行上面的行时,您的集合都会被修改

Array.from(parent.childNodes).forEach(child => newParent.appendChild(child))

将执行此操作,因为您首先创建一个包含10个元素的新数组,并遍历所有10个项目

每次似乎都会从parent.childNodes中删除子节点

child => newParent.appendChild(child)
正在被处决。因此,您遇到了一个问题,因为每次执行上面的行时,您的集合都会被修改

Array.from(parent.childNodes).forEach(child => newParent.appendChild(child))

将执行此操作,因为您首先创建一个包含10个元素的新数组,并遍历所有10项

您可以将child.innerText='child Node'更改为child.innerText='child Node'+i;要了解发生了什么,您可以将child.innerText='child Node'更改为child.innerText='child Node'+i;去了解发生了什么