时间:2021-05-28
因此,他们始终存着最新,最准确的信息。从本质上说,所有NodeList对象都是访问DOM文档时实时运行的查询。例如下列代码会导致无限的循环:
复制代码 代码如下:
<script type="text/javascript">
window.onload=function(){
var divObj=document.getElementsByTagName('div');
for(var i=0;i<divObj.length;i++){
var d=document.createElement("div");
document.body.appendChild(d);
}
}
</script>
首先取得页面中的所有div,由于这个集合(divObj)是“动态的”,因此只要有新的div插入到页面中,divObj都会添加这个新添加的div。也就是说,只要访问divObj,都会重新查询一次,重新更新一下divObj。所以,上面的代码,会出现死循环,因为每次循环的时候都插入了一个新的div,而每次循环都要对条件i<divObj.length求值,意味着会运行取得的所有<div>的查询。
如果想要迭代一个NodeList,最好是使用length属性初始化第二个变量,然后将迭代器与该变量比较。如下代码所示:
复制代码 代码如下:
<script type="text/javascript">
window.onload=function(){
var divObj=document.getElementsByTagName('div');
for(var i=0,len=divObj.length;i<len;i++){
var d=document.createElement("div");
document.body.appendChild(d);
}
}
</script>
这个例子中初始化了第二个变量(len)。由于len中保存着对divObj.length的在循环开始时的一个快照,因此就会避免上个例子的死循环。
总结:一般来说,应该尽量减少访问NodeList的次数。因为每次访问NodeList,都会运行一基于文档的查询。所以,可以考虑将从NodeList中取到的值缓存起来,如例子二所示!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
网站建设的时候什么问题需要注意呢,其实这种操作需要注意的问题是非常的多的,比方说这个网站究竟想要达到什么样的功能,这个问题一定要注意去考虑清楚,有些网站做出来之
当然是可以转让的,需要注意的是企业店铺是绑定了公司的。只有拿到了公司才有内店铺的使用权。这就容需要注意好公司的税务问题和商标权的问题。只有这些处理好了,才不会留
当然是可以转让的,需要注意的是企业店铺是绑定了公司的。只有拿到了公司才有店铺的使用权。这就需要注意好公司的税务问题和商标权的问题。只有这些处理好了,才不会留下隐
当然是可以转让的,需要注意的是企业店铺是绑定了公司的。只有拿到了公司才有版店铺的权使用权。这就需要注意好公司的税务问题和商标权的问题。只有这些处理好了,才不会留
在javascript中使用正则时需要注意中括号里边的一个坑,那就是中括号内的元字符问题。自己踩到坑了,网上搜了一下还有不少人踩了这个坑,所以大概说一下。中括号