DojoまたはプレーンJavaScriptを使用して<div id="test"></div>
からすべての子ノードを削除するにはどうすればよいですか?
dojo.empty(node)
は、ノードを維持したまま、ノードからすべての子を削除します。
dojo.destroy(node)
は、ノードからすべての子を削除してから、その親からもノードを削除します。
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
ここ あなたが必要なものです:
dojo.empty("someId");
document.getElementById('yourDivID').innerHTML="";
W3CDOMプロパティtextContentをMicrosoftの非標準innerHTML/innerTextの代わりに使用できます。これは、DOM3の一部であり、バージョン9以降のInternet Explorerを含むすべての主要なブラウザーでサポートされています http://www.w3schools.com /jsref/prop_node_textcontent.asp
更新:innerHTML/innerTextがHTML5標準の一部になりました