删除所有子节点

时间:2011-03-23 08:22:55

标签: javascript dojo

如何使用Dojo或纯JavaScript从<div id="test"></div>删除所有子节点?

5 个答案:

答案 0 :(得分:27)

尽管使用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

答案 1 :(得分:15)

dojo.empty(node)将保留节点中的所有子节点,同时保留节点。

dojo.destroy(node)将从节点中删除所有子节点,然后从其父节点中删除该节点。

答案 2 :(得分:8)

here就是您所需要的:

dojo.empty("someId");

答案 3 :(得分:6)

document.getElementById('yourDivID').innerHTML="";

答案 4 :(得分:0)

您可以使用W3C DOM属性textContent替代Microsoft非标准innerHTML / innerText,它是DOM3的一部分,并且自版本9 http://www.w3schools.com/jsref/prop_node_textcontent.asp以来所有主要浏览器(包括Internet Explorer)都支持{{3}}

更新:innerHTML / innerText现在是HTML5标准的一部分