idによる要素の削除

標準的なJavaScriptで要素を削除する場合、まず親要素に移動する必要があります。

var element = document.getElementById("element-id");
element.parentNode.removeChild(element);

最初に親ノードに行かなければならないというのは、私には少し奇妙に思えますが、JavaScriptがこのように動作する理由はあるのでしょうか?

いちいち考えなくてもいいように、remove関数を作ればいい。

function removeElement(id) {
    var elem = document.getElementById(id);
    return elem.parentNode.removeChild(elem);
}
解説 (10)

It's what the DOM supportsです。そのページを「remove」や「delete」で検索すると、removeChildはノードを削除する唯一のものです。

解説 (5)

私の理解では、ノードを直接削除することは、Firefoxでは動作せず、Internet Explorerのみで動作します。そのため、Firefoxに対応するためには、親ノードの子ノードを削除するために、親ノードまで行かなければなりません。

参考: http://chiragrdarji.wordpress.com/2007/03/16/removedelete-element-from-page-using-javascript-working-in-firefoxieopera/

解説 (1)