Невозможно вставить узел как до, так и после другого узла - PullRequest
1 голос
/ 27 января 2011

Я пытаюсь вставить узел как до, так и после существующего узла.Проблема в том, что он вставит только один из них.Странный.Кто-нибудь может объяснить почему?

вот код

// 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 , который ответил на мой предыдущий вопрос о вставке после .

Ответы [ 3 ]

5 голосов
/ 27 января 2011

Когда вы добавляете узел в документ, он обязательно удаляется из любого предыдущего местоположения.Один и тот же узел не может находиться в двух местах.

Вам нужна копия узла во втором месте:

// 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);
2 голосов
/ 27 января 2011

Существует только один newNode.Вставка не клонирует ее - она ​​перемещает ее.

0 голосов
/ 31 декабря 2012
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;
      }
    }
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...