Javascript 无法在另一个节点之前和之后插入节点

Javascript 无法在另一个节点之前和之后插入节点,javascript,dom,Javascript,Dom,我正在尝试在现有节点之前和之后插入一个节点。 问题是,它只会插入其中一个。古怪的有人能解释为什么吗 这是密码 // create your new node <p>Hi</p> var newNode = document.createElement("p"); newNode.appendChild(document.createTextNode("Hi")); // a existing node for reference var refNode = docu

我正在尝试在现有节点之前和之后插入一个节点。 问题是,它只会插入其中一个。古怪的有人能解释为什么吗

这是密码

// create your new node <p>Hi</p>
 var newNode = document.createElement("p");
 newNode.appendChild(document.createTextNode("Hi"));

// a existing node for reference
var refNode = document.getElementById("xyz");

// insert newNode before refNode
refNode.parentNode.insertBefore(newNode, refNode);

// insert newNode after refNode
refNode.parentNode.insertBefore(newNode, refNode.nextSibling);
//创建新节点Hi

var newNode=document.createElement(“p”); appendChild(document.createTextNode(“Hi”)); //用于引用的现有节点 var refNode=document.getElementById(“xyz”); //在refNode之前插入newNode refNode.parentNode.insertBefore(newNode,refNode); //在refNode之后插入newNode refNode.parentNode.insertBefore(newNode,refNode.nextSibling);

PS感谢谁回答了我的问题。

只有一个
新节点
。插入不会克隆它,而是移动它。

只有一个
新节点。插入并不是克隆它,而是移动它。

将节点添加到文档时,它必须从以前的任何位置删除。同一节点不能位于两个位置

您需要的是位于第二个位置的节点副本:

// create your new node <p>Hi</p>
var newNode = document.createElement("p");
newNode.innerHTML = "Hi";

// a existing node for reference
var refNode = document.getElementById("xyz");

// insert newNode before refNode
refNode.parentNode.insertBefore(newNode, refNode);

// insert newNode after refNode
refNode.parentNode.insertBefore(newNode.cloneNode(true), refNode.nextSibling);
//创建新节点Hi

var newNode=document.createElement(“p”); newNode.innerHTML=“Hi”; //用于引用的现有节点 var refNode=document.getElementById(“xyz”); //在refNode之前插入newNode refNode.parentNode.insertBefore(newNode,refNode); //在refNode之后插入newNode refNode.parentNode.insertBefore(newNode.cloneNode(true),refNode.nextSibling);
将节点添加到文档时,必须将其从以前的任何位置删除。同一节点不能位于两个位置

您需要的是位于第二个位置的节点副本:

// create your new node <p>Hi</p>
var newNode = document.createElement("p");
newNode.innerHTML = "Hi";

// a existing node for reference
var refNode = document.getElementById("xyz");

// insert newNode before refNode
refNode.parentNode.insertBefore(newNode, refNode);

// insert newNode after refNode
refNode.parentNode.insertBefore(newNode.cloneNode(true), refNode.nextSibling);
//创建新节点Hi

var newNode=document.createElement(“p”); newNode.innerHTML=“Hi”; //用于引用的现有节点 var refNode=document.getElementById(“xyz”); //在refNode之前插入newNode refNode.parentNode.insertBefore(newNode,refNode); //在refNode之后插入newNode refNode.parentNode.insertBefore(newNode.cloneNode(true),refNode.nextSibling);
这是我在网站上的参考资料,这是。这是我在网站上的参考资料,这是。