最新文章专题视频专题问答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使用NodeList需要注意的问题_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:07:33
文档

javascript使用NodeList需要注意的问题_javascript技巧

javascript使用NodeList需要注意的问题_javascript技巧:因此,他们始终存着最新,最准确的信息。从本质上说,所有NodeList对象都是访问DOM文档时实时运行的查询。例如下列代码会导致无限的循环: 代码如下: window.onload=function(){ var divObj=document.getElementsByTagName('d
推荐度:
导读javascript使用NodeList需要注意的问题_javascript技巧:因此,他们始终存着最新,最准确的信息。从本质上说,所有NodeList对象都是访问DOM文档时实时运行的查询。例如下列代码会导致无限的循环: 代码如下: window.onload=function(){ var divObj=document.getElementsByTagName('d


因此,他们始终存着最新,最准确的信息。从本质上说,所有NodeList对象都是访问DOM文档时实时运行的查询。例如下列代码会导致无限的循环:

代码如下:

window.onload=function(){
var divObj=document.getElementsByTagName('div');
for(var i=0;i var d=document.createElement("div");
document.body.appendChild(d);
}
}


首先取得页面中的所有div,由于这个集合(divObj)是“动态的”,因此只要有新的div插入到页面中,divObj都会添加这个新添加的div。也就是说,只要访问divObj,都会重新查询一次,重新更新一下divObj。所以,上面的代码,会出现死循环,因为每次循环的时候都插入了一个新的div,而每次循环都要对条件i的查询。

如果想要迭代一个NodeList,最好是使用length属性初始化第二个变量,然后将迭代器与该变量比较。如下代码所示:

代码如下:

window.onload=function(){
var divObj=document.getElementsByTagName('div');
for(var i=0,len=divObj.length;i var d=document.createElement("div");
document.body.appendChild(d);
}
}


这个例子中初始化了第二个变量(len)。由于len中保存着对divObj.length的在循环开始时的一个快照,因此就会避免上个例子的死循环。

总结:一般来说,应该尽量减少访问NodeList的次数。因为每次访问NodeList,都会运行一基于文档的查询。所以,可以考虑将从NodeList中取到的值缓存起来,如例子二所示!

文档

javascript使用NodeList需要注意的问题_javascript技巧

javascript使用NodeList需要注意的问题_javascript技巧:因此,他们始终存着最新,最准确的信息。从本质上说,所有NodeList对象都是访问DOM文档时实时运行的查询。例如下列代码会导致无限的循环: 代码如下: window.onload=function(){ var divObj=document.getElementsByTagName('d
推荐度:
标签: 注意 js 的问题
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top