Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > removeNode и removeChild


Автор: JagaJu 10.1.2005, 22:44
В чем различие методов removeNode() и removeChild() ?

Автор: Sardar 10.1.2005, 23:17
Такого метода removeNode не существует, где нашёл ? smile

Автор: Alx 12.1.2005, 17:00
Sardar
есть! удаляет текщий элемент
напрмер так:

Код

var elem = document.getElementById("qqq");
elem.removeNode();

Автор: Sardar 12.1.2005, 17:23
Очень удивился, решил проверить. Перекопал DOM1, DOM2, DOM3 и их версии для HTML - ничего подобного нет.
Проверяю на MSDN, точно, ИЕ имеет такой метод у нод, нода может удалить сама себя.
Цитата
Removes the object from the document hierarchy.

There is no public standard that applies to this method.

А теперь попробуем догадатсья почему парни из W3C не внесли такой метод? smile Впосминаем о node.parentNode - ссылка на родителя ноды. Вспоминаем parentNode.removeChild(childNode) - удалить ноду из родителя. Тогда эквивалентом ИЕ removeNode будет:
Код
node.parentNode.removeChild(node);

Это логичнее, мы удаляем ноду из контейнера, а не нода сама по себе убегает smile

Кто хочет, может добавить сей метод под мозиллой и возможно поздними версиями Оперы:
Код
Node.prototype.removeNode=function() {
 if(this.parentNode) this.parentNode.removeChild(this);
}

Автор: Alx 13.1.2005, 06:46
Цитата(Sardar @ 12.1.2005, 17:23)
Это логичнее, мы удаляем ноду из контейнера, а не нода сама по себе убегает

ну это смотря с какой стороны посмотреть...

я вот толкьо одного не понял...
когда она удаляется, что происходит? стирается её HTML? или как?

Автор: Sardar 13.1.2005, 10:22
Цитата(ALEXANDRO @ 13.1.2005, 05:46)
я вот толкьо одного не понял...
когда она удаляется, что происходит? стирается её HTML? или как?

Перестань думать о документе как о HTML листинге, это совсем не так когда документ загружен smile Сам документ это дерево нод, если почитаешь W3C CSS рекомендации, то там не плохо описан механизм отрисовки: контейнер -> содержимое. Если удаляем ноду, то она больше не учавствует в отрисовке и её контейнер больше не занимает место.

Автор: Alx 13.1.2005, 16:20
ты очень понятно объяснил...
и всё-таки трудно мне вот этого не делать:
Цитата(Sardar @ 13.1.2005, 10:22)
думать о документе как о HTML листинге


я себе всегда представлял себе HTML страничку, как что-то убого-графическое, где кусочки зависят от того, что я написал в Блокноте... и только JS добавляет туда какое-то искусство....

но надо будет подумать над этим...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)