扫码关注官方订阅号
这里这个lis里面本来有8,9,14三个元素,但是你们结合代码看看控制台里面只遍历了8和14,为什么9被跳过了?
业精于勤,荒于嬉;行成于思,毁于随。
谢邀~
对数组(其实是nodelist)操作了, i还继续在增长 可不就跳过了.这里就不用for循环了, 一个
while(lis.length > 0){ //每次remove第一个就行了 lis[0] }
因为你的list是动态改变了长度、
长度可以赋值给一个变量、用这个变量给for循环使用
可以拆开for循环看、
第一次i=0、length=3进循环、删除了list[0]也就是你的8
第二次i=1、length=2了list[1]也就是14
第三次就进不去循环了
用querySelectorAll就可以解决这个问题。
querySelectorAll
getElementsByTagName返回的是一个动态list,也就是说你删除一个的话,list.length就减少1
getElementsByTagName
list
list.length
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
谢邀~
对数组(其实是nodelist)操作了, i还继续在增长 可不就跳过了.
这里就不用for循环了, 一个
因为你的list是动态改变了长度、
长度可以赋值给一个变量、用这个变量给for循环使用
可以拆开for循环看、
第一次i=0、length=3进循环、
删除了list[0]也就是你的8
第二次i=1、length=2了
list[1]也就是14
第三次就进不去循环了
用
querySelectorAll就可以解决这个问题。getElementsByTagName返回的是一个动态list,也就是说你删除一个的话,list.length就减少1