求大神解答?

来源:9-14 删除节点removeChild()

慕姐8289045

2016-07-26 09:13

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

写回答 关注

3回答

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

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

    慕姐8289...

    你好,不太理解,还是有几个问题,,,,第一个问题,就像他的序号2说的,什么正着删除一个,倒着删除一个?什么意思? 第二个问题,序号3我懂了一次性删除3个,那为啥后两个是一次删除一个呢? 第三个问题,序号3改的代码是不是var x=content.removeChild(content.childNodes[0]);里面应该是content.childNodes[i],而不是content.childNodes[0]啊?、、、、求大神你解答,,,,,,,,,嘻嘻

    2016-07-26 09:42:02

    共 1 条回复 >

  • 慕姐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说的一样.

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

467351 学习 · 21876 问题

查看课程

相似问题