最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript存在陷阱删除某一区域所有节点_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:49:09
文档

JavaScript存在陷阱删除某一区域所有节点_javascript技巧

JavaScript存在陷阱删除某一区域所有节点_javascript技巧:比较简单的,例如:有一区域,现要求删除其中所有节点。相信很多人会这样写: 代码如下: var divpanel = document.getElementById(newbody); var controlinfo= divpanel.childNodes; for(var index = 0;index {
推荐度:
导读JavaScript存在陷阱删除某一区域所有节点_javascript技巧:比较简单的,例如:有一区域,现要求删除其中所有节点。相信很多人会这样写: 代码如下: var divpanel = document.getElementById(newbody); var controlinfo= divpanel.childNodes; for(var index = 0;index {

比较简单的,例如:有一区域,现要求删除其中所有节点。相信很多人会这样写:
代码如下:
var divpanel = document.getElementById("newbody");
var controlinfo= divpanel.childNodes;
for(var index = 0;index < controlinfo.length ;index++)
{
  divpanel.removeChild(controlinfo[index]);
}

咋一看,是啊,对啊,这样很正确啊,一个一个遍历,最后全部删除。但是,仔细想想,每当删除一个节点后,controlinfo.length就会变小,这样下去是不能全部删除的——存在Bug。那么该如何改进呢?已经很清楚了,既然从开头Start不行,那我们就从结尾Start,完全正确,如下:
代码如下:
var divpanel = document.getElementById("newbody");
var controlinfo= divpanel.childNodes;
for(var index = controlinfo.length - 1;index >= 0 ;index--)
{
  divpanel.removeChild(controlinfo[index]);
}

调试,Very Good!

这种陷阱不只是在JavaScript中才会碰到,基本上所有的语言,如C#、Java等,我们都会碰到这样的问题,有时会因为这样的问题而浪费很多的时间。很早就已经知道了这个问题,不过总是太相信自己的记忆,而没有好好记录,现在特记录下来,警示自己,同时也与大家分享。

文档

JavaScript存在陷阱删除某一区域所有节点_javascript技巧

JavaScript存在陷阱删除某一区域所有节点_javascript技巧:比较简单的,例如:有一区域,现要求删除其中所有节点。相信很多人会这样写: 代码如下: var divpanel = document.getElementById(newbody); var controlinfo= divpanel.childNodes; for(var index = 0;index {
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top