web-dev-qa-db-ja.com

すべての子ノードを削除します

DojoまたはプレーンJavaScriptを使用して<div id="test"></div>からすべての子ノードを削除するにはどうすればよいですか?

11
Damir

dojo.empty(node)は、ノードを維持したまま、ノードからすべての子を削除します。

dojo.destroy(node)は、ノードからすべての子を削除してから、その親からもノードを削除します。

15
Stephen Chung

El.innerHTML = ""を使用したくなりますが、通常はこれで機能しますが、より正確なアプローチは次のとおりです。

var el = document.getElementById('test');
while( el.hasChildNodes() ){
    el.removeChild(el.lastChild);
}

これは、IEがinnerHTMLを使用したテーブル操作を本当に嫌うためです(これはMSDNのどこかに記載されています)。

編集:MSDNリファレンスが見つかりました: http://msdn.Microsoft.com/en-us/library/ms532998%28v=vs.85%29.aspx#TOM_Create

29
jordancpaul

ここ あなたが必要なものです:

dojo.empty("someId");

9
MiPnamic
document.getElementById('yourDivID').innerHTML="";
6
Lalchand

W3CDOMプロパティtextContentをMicrosoftの非標準innerHTML/innerTextの代わりに使用できます。これは、DOM3の一部であり、バージョン9以降のInternet Explorerを含むすべての主要なブラウザーでサポートされています http://www.w3schools.com /jsref/prop_node_textcontent.asp

更新:innerHTML/innerTextがHTML5標準の一部になりました

0
baptx