JavaScript存在陷阱删除某一区域所有节点
JavaScript节点 删除 所有 存在 区域 陷阱 某一
2023-06-13 09:14:18 时间
比较简单的,例如:有一区域<divid="newbody"></div>,现要求删除其中所有节点。相信很多人会这样写:
复制代码代码如下:
vardivpanel=document.getElementById("newbody");
varcontrolinfo=divpanel.childNodes;
for(varindex=0;index<controlinfo.length;index++)
{
divpanel.removeChild(controlinfo[index]);
}
咋一看,是啊,对啊,这样很正确啊,一个一个遍历,最后全部删除。但是,仔细想想,每当删除一个节点后,controlinfo.length就会变小,这样下去是不能全部删除的——存在Bug。那么该如何改进呢?已经很清楚了,既然从开头Start不行,那我们就从结尾Start,完全正确,如下:
vardivpanel=document.getElementById("newbody");
varcontrolinfo=divpanel.childNodes;
for(varindex=controlinfo.length-1;index>=0;index--)
{
divpanel.removeChild(controlinfo[index]);
}
调试,VeryGood!
这种陷阱不只是在JavaScript中才会碰到,基本上所有的语言,如C#、Java等,我们都会碰到这样的问题,有时会因为这样的问题而浪费很多的时间。很早就已经知道了这个问题,不过总是太相信自己的记忆,而没有好好记录,现在特记录下来,警示自己,同时也与大家分享。
相关文章
- javascript 高级教程 视频_精通JavaScript
- javascript_JavaScript走向成熟
- 比 Node.js 快三倍,新 JavaScript 运行时 Bun 火了
- Javascript常用运算符(Operators)-javascript基础教程
- 使用JavaScript创建可维护的幻灯片效果代码
- Javascript入门学习第八篇jsdom节点属性说明
- javascript密码强弱度检测万能插件
- javascript变态的节点集合
- JavaScript设计模式富有表现力的Javascript(一)
- JavaScript开发规范要求(图文并茂)
- javascript节点排序实现代码
- javascript学习笔记(十九)节点的操作实现代码
- javascript作用域容易记错的两个地方分析
- 深入理解javascript学习笔记(一)编写高质量代码
- javascript中input中readonly和disabled区别介绍
- javascript中节点的最近的相关节点访问方法
- javascript基础之查找元素的详细介绍(访问节点)
- 深入理解javascript动态插入技术
- 浅析JavaScript中的同名标识符优先级
- JavaScript两种跨域技术全面介绍
- javascript妯℃??璁㈢??溅绁ㄥ????绁ㄧず渚?
- javascript获取HTMLDOM父、子、临近节点
- javascript弹出页面回传值的方法