Вставка элемента

Есть ли в Javascript метод для вставки элемента после текущего узла. Я знаю, что есть метод, который вставляет элемент перед текущим узлом XML. Но есть метод для Ins. после текущего узла?

13.10.2009 11:22:28
2 ОТВЕТА

Просто получите следующий брат текущего узла и вставьте новый узел перед этим узлом, используя insertBefore:

currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling);

Если nextSiblingесть null, insertBeforeвставляет новый узел в конец списка узлов.

11
23.04.2012 21:52:05
Я ненавижу этот синтаксис, но это единственный способ. +1
Stephen Sorensen 13.10.2009 12:10:55
Что-то опрятное в том, что currentNode.parentNode.insertBefore(newNode, currentNode.nextSibling)нужно только . Если currentNode.nextSibling имеет значение null, то в любом случае результат будет точно таким же, как и в строке appendChild.
Crescent Fresh 13.10.2009 13:26:40
@ Гамбо, возможно, стоит обновить это согласно комментарию crescentfresh?
James 13.10.2009 14:08:06
@crescentfresh: Спасибо, не знал этого.
Gumbo 13.10.2009 15:35:10

Не существует прямого метода для вставки узла после определенного узла, но есть обходной путь:

var parent = currentNode.parentNode;
if(currentNode.nextSibling != null)
    parent.insertBefore(newNode,currentNode.nextSibling)
else
    parent.appendChild(newNode);
-1
13.10.2009 11:32:15
Нет, это неправильно. insertBeforeс в nullкачестве опорного элемента вставки на конце родительского узла (например, это то же самое , как appendChild). Нет необходимости для проверки.
T.J. Crowder 23.04.2012 21:51:04