我正在尝试在现有节点之前和之后插入节点。 问题是,它只会插入其中一个。奇。任何人都可以解释原因吗?
这是代码
// 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);
PS感谢karim79谁回复了我的previous question on insert after。
答案 0 :(得分:5)
将节点添加到文档时,必须从之前的任何位置删除该节点。同一节点不能位于两个位置。
您想要的是第二个位置的节点副本:
// 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);
答案 1 :(得分:2)
只有一个newNode
。插入不会克隆它 - 它会移动它。
答案 2 :(得分:-1)
insert after (single llinked list list node *previous,single linked list node*new node)
{
if(new node==null)
return;
else{
if(previous==null)
add first(new node);
else{
single linked list node*nex=previous->;
previous->next=new node;
new node-> next=next;
}
}
}