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

求大神解答?

为啥正着删除就得好几次删除,感觉不太对,为啥倒着删除,就可以一次性删除?就算正者删除长度会变化那又如何?

提问者:慕姐8289045 2016-07-26 09:13

个回答

  • 水里有条鱼
    2016-07-26 09:30:32
    已采纳

    你看一下http://www.imooc.com/qadetail/56371,虽然懂解释但是他解释得更好

  • 慕姐8289045
    2016-07-26 11:12:45

    哎呀,你回答的真的很棒,很在点上,感觉自己还是得勤于思考啊,明明可以想出来的,一个字,懒!,非常感谢,嘻嘻

  • 水里有条鱼
    2016-07-26 10:18:56

    1.

    for(var i=0;i<content.childNodes.length;)  {  

     var x=content.removeChild(content.childNodes[0]);  } //每次删除第一个,length会-1,length等于0,退出循环

    }

    同理 var x=content.removeChild(content.childNodes[0]);  变为

    var x=content.removeChild(content.childNodes[content.childNodes.length-1]); 

     每次删除最后一个,length会-1,length等于0,退出循环

    2.

    按照他的距离现在按完一次后, content.childNodes.length=2,再按一次

    i=0     content.childNodes.length=2      0<2  删除第一个节点后,继续循环

    i=1     content.childNodes.length=1      1<1   不成立,所以不继续。

    再按一次

    i=0     content.childNodes.length=1      0<1  删除第一个节点后,继续循环

    i=1     content.childNodes.length=0      1<0   不成立,所以不继续。删除完毕

    3.

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

    是这个没错,他的意思是每次删除第一个,删除length次,所以把所有的都删完了,原理跟我1说的一样.