removeChild只能删除一个,循环删除时用这个就报错。换成remove就可以了!这是为什么?
你倒是把代码贴出来
sorry,作为一枚萌新,我怀着一腔热血回答了之后才发现,oh my god,这是两年前的问题,尴尬。
你的这一块都是废话:for (var i=0;i<num;i++){ content.remove(content.childNodes[i].innerHTML) } 就相当于这一句话:content.remove(); 如果你非要用for 不是removeChild()没用,而是应该这么写:content.removeChild(content.firstChild); 你能理解吗?即使你那种想法不报错,也是删不干净的,因为动态变化的长度你非要把它静态删,你写法就是错误的 ,当然要报错。
<div id="content">
<h1>html</h1>
<h1>php</h1>
<h1>javascript</h1>
<h1>jquery</h1>
<h1>java</h1>
</div>
<script type="text/javascript">
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
var num=content.childNodes.length;
for (var i=0;i<num;i++){
content.remove(content.childNodes[i].innerHTML)
}
}
</script>
<button onclick="clearText()">清除节点内容</button>
这是Javas进阶篇中的删除节点removeChild()的内容的任务。for 循环中要把removeChild()换成remove()才有用