问答详情
源自:9-14 删除节点removeChild()

加上输出语句就能一次性删除,不加就不能,这么神奇,哪里错了?

<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 x=content.childNodes;
  document.write(x.length);   // 就是这一句,加上这一句才能一次性删除,为什么?
  for(var i=0;i<x.length;i++)
  {
    content.removeChild(x[0]); 
  }
}
</script>


<button onclick="clearText()">清除节点内容</button>


提问者:以花之名 2016-05-15 13:23

个回答

  • 空城盼故人
    2016-05-31 16:44:35

    同问……为什么输出一句就不能继续执行了呢…………

  • 挥挥手001
    2016-05-15 14:39:05

    document.write(x.length);   // 就是这一句,加上这一句才能一次性删除,为什么?


    你加这句不是说一次删除了你的节点,这是错误的。是因为你方法里面有一个输出语句,你点击你的方法所以触发了你写的输出语句,所以页面要输出你写的输出语句里面的结果,你看到的页面就是你输出语句的结果,并不是你删除了你所有的节点。输出语句本身不带删除功能的。