JS中对象的循环删除问题
来源:互联网 发布:linux faikmm 编辑:程序博客网 时间:2024/05/24 13:28
业务说明:对页面元素名称为subCheck的所有元素循环删除。
错误代码如下:
var eles=document.getElementsByName("subCheck");
for(var =1,i<eles.length;i++){
var ele=eles[i];
$(ele).remove();
}
针对以上代码,若eles的长度为4的话,实际情况只能删掉2个。这是因为JS在删掉一个元素的同时,将eles集合中的元素同时删掉。也就是说被循环的集合是动态的。
比如,原eles[A,B,C,D]
第一次循环前 eles=[A,B,C,D] i=0; 获得 ele=A,删除掉A
第二次循环前 eles=[B,C,D] i=1; 获得 ele=C ,删除掉C
第三次循环前 eles=[B,D] i=2;这时i的值已经大于eles集合的长度,不再进入循环。
最后的结果就是只删除掉了部分元素。
正确的代码为:
var eles=document.getElementsByName("subCheck");
for(var =eles.length-1,i>=0;i--){
var ele=eles[i];
$(ele).remove();
}
针对以上代码,比如,原eles[A,B,C,D]
执行过程为:
第一次循环前 eles=[A,B,C,D] i=3; 获得 ele=D,删除掉D
第二次循环前 eles=[A,B,C] i=2; 获得 ele=C ,删除掉C
第三次循环前 eles=[A,B] i=1; 获得 ele=B, 删除掉B
第三次循环前 eles=[A] i=0; 获得 ele=A, 删除掉A
此时i=-1,循环结束。
最后的结果是全部删除。
- JS中对象的循环删除问题
- js数组循环删除元素或对象
- js中,清空对象(删除对象的属性)
- 在循环的过程中删除数组元素的问题
- for循环中删除集合元素的问题
- java中for循环删除元素的问题
- 从 DataTable 对象中删除 DataRow 对象 遇到的问题
- js删除数组中某个特定的对象
- 纠结的循环中删除
- 在js中循环遍历json对象
- js中关于setTimeOut()循环的问题
- JS中for循环输出同一变量值的问题
- js在循环中,传入i报错的问题
- js删除对象的属性
- JS循环引用的问题
- list循环删除对象
- JScript内置对象Array中元素的删除问题
- Java中List循环遍历的时候删除当前遍历对象
- vmware 中ubuntu硬盘空间不足,重新挂载硬盘
- HTML5--新增的标签、属性和事件
- Guitar Pro 7 注册机-注册码地址汇总
- 什么是REST和RESTful
- git 命令
- JS中对象的循环删除问题
- java对象数据转xml文件(加<![CDATA[]]>)[注解方式]
- Java线程的创建与启动(1)
- socket之基础讲解
- Centos7.3安装和配置jre1.8
- 在onCreate()中获取某个View的宽高(post()方法)
- oracle几种字符类型总结
- 测试博客第一篇
- DialogFragment使用及总结