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

为什么连续点了四次 才全部清除完?

<!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 child=content.childNodes;

  for(var i=0;i<child.length;i++)

  {

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

      x=null;

  }

  

}

</script>


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




</body>

</html>


提问者:qq_Hy_49 2018-08-07 13:16

个回答

  • 扁扁1
    2018-08-09 14:12:58

    用for循环遍历首先删除第一个元素html,接下来的4个元素不是原来的2,3,4,5了  而是1,2,3,4 ,接下来删除第二个元素是javascript,跟队列数据结构一样的原理,比如排队买票,第一人买了票走了,后面的人依次上前一位,原本的第二个人站到了第一个人的位置,就是这样,我说的应该很清楚了把。回到问题上,倒序遍历就可以了,这样位置就不会发生变化

  • 三足乌
    2018-08-07 17:40:26

    同问同问