少し面倒に見えるかもしれませんが、それは親から要素を削除する標準的な方法です。DOM要素自体は、なしで単独で存在できるため、メソッドが親上にあるparentNode
ことは理にかなっています。removeChild
DOMノード自体のIMOジェネリック.remove()
メソッドは誤解を招く可能性があります。結局のところ、要素をその親から削除するのではなく、存在から削除するわけではありません。
ただし、この機能用に独自のラッパーをいつでも作成できます。例えば
function removeElement(element) {
element && element.parentNode && element.parentNode.removeChild(element);
}
// Usage:
removeElement( document.getElementById('some_element') );
または、jQueryのようなDOMライブラリを使用して、jQueryのように一連のラッパーを提供します。
$('#some_element').remove();
この編集は、ネイティブDOM実装を拡張する可能性について質問したコメントに対応しています。これは悪い習慣と見なされているため、代わりに、要素を含む独自のラッパーを作成してから、必要なメソッドを作成します。例えば
function CoolElement(element) {
this.element = element;
}
CoolElement.prototype = {
redify: function() {
this.element.style.color = 'red';
},
remove: function() {
if (this.element.parentNode) {
this.element.parentNode.removeChild(this.element);
}
}
};
// Usage:
var myElement = new CoolElement( document.getElementById('some_element') );
myElement.redify();
myElement.remove();
これは本質的にjQueryが行うことですが、上記のような個々の要素ではなくDOMノードのコレクションをラップするため、少し高度です。