删了一部分
顺着删
let chils=list.childNodes;//获取子节点集合
let length=chils.length;
for(let i=0;i<length;i++){
list.removeChild(chils[i]);
}
完成操作删完
倒着删
let chils=list.childNodes;//获取子节点集合
let length=chils.length;
for(let i=length-1;i>=0;i--){
list.removeChild(chils[i]);
}
大家知道为什么吗
因为,li节点的集合是动态的,当你删除了下标为0的节点后,后面的其他节点会往前移动,1->0;2->1;3->2…那么如果循环是顺着删除的话,当删了0下标的节点之后i++,就会去删除1的节点,然而以前下标为1的节点,现在已经变成了0;所以0这个节点就会删除不了,以此类推,就会有一一半的节点删不到。
和python的内存管理机制差不多(可迭代的对象)