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

为什么反向遍历可以一次清楚所有节点,而正向遍历要点好几次?

http://img1.sycdn.imooc.com//5de4f0e100015b8012460838.jpg

http://img1.sycdn.imooc.com//5de4f0e10001c5e812500835.jpg

为什么反向遍历可以一次清楚所有节点,而正向遍历要点好几次?

正在回答

5 回答

我遇到了同样的问题,在就业班里问了老师,老师解释的很好,我把代码和老师的解释分享给你:


<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>删除节点removeChild()</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 hs=content.childNodes;

  var len=hs.length;

      for(var i=0;i<len;i++){

          console.log(hs);

        content.removeChild(hs[i])

      }

}

</script>


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

</body>

</html>

http://img1.sycdn.imooc.com//5de66298000128c506860563.jpg

http://img1.sycdn.imooc.com//5de662ca0001dfb914910469.jpg

http://img1.sycdn.imooc.com//5de662e80001636705990103.jpg

http://img1.sycdn.imooc.com//5de662fb0001206e13740232.jpg

http://img1.sycdn.imooc.com//5de663150001448207000602.jpg


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

慕圣大越越

太赞了,这下完全理解了
2020-02-21 回复 有任何疑惑可以回复我~
#2

JJLinNNnnn

非常感谢
2020-02-26 回复 有任何疑惑可以回复我~
#3

风笺

你这老师讲的真好!
2020-04-19 回复 有任何疑惑可以回复我~
#4

ZKKL

太棒了 感谢你的回答
2020-05-06 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//5eddaa38000152bb13110827.jpg 这就是”金刚无敌葫芦娃“兄弟说的第二种情况

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

这是最有价值的一个解答

原来是因为每次删除一条后,整个数组顺序发生了变化。

解决思路有两种

1、一直删最后一个,即倒序删,这样就不会漏了

2、一直删第一个,即正序删,不要加i++,这样也不会漏

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

niupi 谢谢大佬

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

因为i在自增,而节点的长度在减少,所以删一条,就会漏一条数据。

正着删也可以实现,把 i++ 变为 i  ,不让它增加,这样就不会漏过一条数据了

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

举报

0/150
提交
取消

为什么反向遍历可以一次清楚所有节点,而正向遍历要点好几次?

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