繁体   English   中英

删除所有子节点

[英]Remove all child nodes

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

虽然使用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(node)将在保留节点的同时从节点中删除所有子节点。

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

是你需要的:

dojo.empty("someId");

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM