为了账号安全,请及时绑定邮箱和手机立即绑定

点击第一下没有反应,然后再点击一下删除了3个,然后再点击依次删除一个

<!DOCTYPE HTML>
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <title>无标题文档</title>
</head>

<body>
<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 len=content.childNodes.length;
       for(var i=0;i<len;i++){
           var x=content.removeChild(content.childNodes[i]);
       }return x;
   }
</script>
<button onclick="clearText()">清除节点内容</button>

</body>
</html>


chrome 报错了给这一句

           var x=content.removeChild(content.childNodes[i]);

 Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'

到底哪里有问题呢?

正在回答

2 回答

我自己在本子上划了划,弄明白了,节点的个数在变化,索引值也在变化。最简单的办法就是换成从大到小删除。

0 回复 有任何疑惑可以回复我~

当你删除节点的子节点的时候,节点的子节点个数在不断的变化,所以你删除的效果和你想象中的不一样样,直接暴力解决方式function clearText(){

 var content=document.getElementById("content");

content.innerHTML="";

}

0 回复 有任何疑惑可以回复我~
#1

惊悚的窝窝头 提问者

谢谢!
2017-11-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

点击第一下没有反应,然后再点击一下删除了3个,然后再点击依次删除一个

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信