44

body タグ以外に親を持たない dom 要素を削除することは可能ですか? これは jquery のようなフレームワークで簡単にできることはわかっていますが、私はまっすぐな JavaScript に固執しようとしています。

それ以外の場合に実行するために見つけたコードは次のとおりです。

function removeElement(parentDiv, childDiv){
     if (childDiv == parentDiv) {
          alert("The parent div cannot be removed.");
     }
     else if (document.getElementById(childDiv)) {     
          var child = document.getElementById(childDiv);
          var parent = document.getElementById(parentDiv);
          parent.removeChild(child);
     }
     else {
          alert("Child div has already been removed or does not exist.");
          return false;
     }
}   

ありがとう!

4

7 に答える 7

102

要素の親を取得し、そこから要素を削除できるはずです

function removeElement(el) {
el.parentNode.removeChild(el);
}

アップデート

これを HTMLElement の新しいメソッドとして設定できます。

HTMLElement.prototype.remove = function() { this.parentNode.removeChild(this); return this; }

そして、実行しますel.remove()(これも要素を返します)

于 2009-11-26T18:03:52.557 に答える
20
childDiv.remove();

Chrome 25.0.1364.155 で動作します

これは IE11 または Opera Mini では機能しませんが、他のすべてのブラウザーでサポートされていることに注意してください。

こちらを参照してください: caniuse の childnode-remove への参照

于 2013-03-18T15:12:36.790 に答える
16

私はあなたが次のようなことができると思います...

var child = document.getElementById(childDiv);
//var parent = document.getElementById(parentDiv);
child.parentNode.removeChild(child);

詳細については、 node.parentNodeを参照してください。

于 2009-11-26T18:04:36.220 に答える
6
document.body.removeChild(child);
于 2009-11-26T18:03:50.857 に答える
4

outerHTMLプロパティを使用して要素を削除する

remElement(document.getElementById('title'));
remElement(document.getElementById('alpha'));

function remElement(obj) {
obj.outerHTML="";
}
于 2013-09-19T05:09:02.087 に答える
1

idを使用して要素を単純に削除するこの関数:

function removeElement (id) { 
  document.getElementById(id).parentElement.removeChild(document.getElementById(id));
}
于 2016-12-06T17:30:11.800 に答える