Удалить вершину дерева, оставив его детей.
Дано:
<strong> text <em> text </em> ... другие узлы... </strong> Нужно при помощи функций для работы с DOM удалить <strong></strong>, не затронув его вложенных элементов. |
Переместить всех детей на уровень выше, потом удалить узел.
|
Лучше поотбирать детей в documetFragment, потом удалить пустого родителя и вставить фрагмент перед ним
|
Цитата:
|
e1f,
чем лучше, кроме создания одного лишнего объекта и дальнейших манипуляций с ним? |
Kolyaj,
Тем, что вместо последовательной вставки по одному элементу в ДОМ-дерево мы создаем фрагмент, который с деревом не связан, и одним махом аппендим в ДОМ. Riim, А запомнить elParent.previousSibling перед удалением? ;) |
Зачем вообще что-то вставлять/удалять, когда есть replaceChild.
|
Да, я знаю. Вот только не помню, кроссбраузерный ли он. Если да -- то это лучший выход, естественно.
|
Разве можно элемент на документ фрагмент заменить? Или реплейс как-то подругому можно использовать? :)
|
Пример (проверял в консоли firebug'a):
(function(){ var el = document.getElementById('someId'); var dF = document.createDocumentFragment(); var fC; while (fC = el.firstChild) dF.appendChild(fC); el.parentNode.replaceChild(dF, el); }()) UPD Забыл дописать, что работает :) |
Часовой пояс GMT +3, время: 21:00. |