慕移动5947621
2018-03-25 20:08
为什么输出结果是这样的
删除掉的节点是:html
删除掉的节点是:javascript
删除掉的节点是:java
而且不输出“所有节点已删除”
for循环第一次,i=0,删除html节点;
第二次,i=1,因为第一次循环删除了一个节点,html语句中的结构变为:<div id="content"><h1>php</h1><h1>javascript</h1><h1>jquery</h1><h1>java</h1></div>
所以删除的content.childNodes[1]就是javascript节点,而不是php节点;
第三次,i=2,前两次循环删除了两个节点了,所以这里的content.childNodes[2]指的是java;
第四次,i=3时,html语句为:<div id="content"><h1>php</h1><h1>jquery</h1></div>,只有两个节点,查找不到第四个节点,所以出错了,后面的“所有节点已删除”也输出不了
大概是这样。
错误的点在于 1.长度信息没更新,即c值;2.content.childNodes的长度会变,所以执行循环后,i++会引发漏删节点
大概就是这样。
有误可更正。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题