removeNode() ?> ... На самом деле, один запрос к ядру всяко ж лучше чем два. А removeNode кроме того может делать такую интересную вещь как "поднять" всех детей на уровень выше. > ... > document.all.ee.removeNode(false) > > Иногда очень полезно, да. Попробуй чиста домом сделать.
Смею заметить, что довольно таки давно занимаюсь dHTML'ем и последние полтора года - только DOM-методами и работаю. Так вот, подобное (удаление внешней ноды) мне не понадобилась НИ РАЗУ!!!
В любом случае, чтобы написать подобное только с помощью стандартных функций нужны не больше 30 секунд:
function removeOuterNode(nodeId) { var outerNode = document.getElementById(nodeId); outerNode.parentNode.replaceChild(nodeList2DocFragment(outerNode.childNodes), outerNode); }
просто меняеш необходимую ноду на docFragment состоящий из ее детей.
Но, чтобы быть точным, наверное понадобиться еще одна функция (которой я пользуюсь достаточно часто, потому, что позволяет легко наполнять docFragment'ов):
function nodeList2DocFragment(nList) { var newDocFragment = document.createDocumentFragment(); for (var i in nList) newDocFragment.appendChild(nList.item(i)); return newDocFragment; }
Как видим, желаемого результата можно добиться без каких-либо проблем универсальными DOM-методами. Зачем пользоваться вещами, которые не универсальны? Скорость работы? А можеш дать URL реально работающего интерфейса, где нодов, которых (зачем-то!) нужно поднять наверх (всего на один уровень!) так много, что выгрыш в использовании removeNode() больше полусекунды? ;-) |