--- title: Node.remove() slug: orphaned/Web/API/ChildNode/remove translation_of: Web/API/ChildNode/remove original_slug: Web/API/ChildNode/remove ---
Метод Node.remove() удаляет узел из дерева DOM
То, что элемент удалён из DOM, ещё не значит, что он удалён совсем!
Он остался объектом и исчезнет только тогда, когда исчезнут все ссылки на него.
Node.remove();
Node - любой узел DOM<div id="box"> <div id="one"></div> <div id="two"></div> </div>
var elem = document.querySelector("#one");
elem.remove();
alert(document.querySelector("#box").innerHTML); //Исчез блок #one
alert(elem); //Но как видите, сам объект ещё жив
Можно создать полифил для IE 9 и выше, используя следующий код:
(function() {
var arr = [window.Element, window.CharacterData, window.DocumentType];
var args = [];
arr.forEach(function (item) {
if (item) {
args.push(item.prototype);
}
});
// from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md
(function (arr) {
arr.forEach(function (item) {
if (item.hasOwnProperty('remove')) {
return;
}
Object.defineProperty(item, 'remove', {
configurable: true,
enumerable: true,
writable: true,
value: function remove() {
this.parentNode.removeChild(this);
}
});
});
})(args);
})();
| Спецификация | Статус | Комментарий |
|---|---|---|
| {{SpecName('DOM WHATWG', '#dom-childnode-remove', 'ChildNode.remove')}} | {{Spec2('DOM WHATWG')}} | Initial definition. |
{{Compat("api.ChildNode.remove")}}