2011-01-26 16 views
1

既存のノードの前後にノードを挿入しようとしています。 問題は、そのうちの1つだけを挿入することです。奇妙ななぜ誰かが説明できますか?別のノードの前後にノードを挿入できません。

ここでコードが私のprevious question on insert afterに答えkarim79

// 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のおかげです。

答えて

5

ノードをドキュメントに追加すると、ノードは以前の場所から必ず削除されます。同じノードを2つの場所に配置することはできません。何をしたい

は、第二の位置にノードのコピーです://:

// 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); 
+0

は、ここで[ 'Node.cloneNode()']のために、私は私のサイトで持っている参照(HTTPですobjjob.phrogz.net/dom/method/573)、ここには[公式文書](http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-3A0ED0A4) 。 – Phrogz

2

newNodeは1つのみです。挿入するとクローンは作成されません。

-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; 
     } 
    } 
    }