zoukankan      html  css  js  c++  java
  • 使用NodeList

       理解NodeList、NamedNodeMap和HTMLCollection是整体透彻理解DOM的关键。

       这三个集合都是“动态”的,也就是说:每当文档结构发生变化时,他们都会得到更新,他们始终保存的都是最新最准确的信息。

       从本质上说:所有NodeList对象都是在访问DOM文档时实时运行的查询。

      

    //下面代码会无限循环
    
    var divs = document.getElementsByTagName('div');
    var i,
       div;
    
       for(i=0;i<divs.length;i++){
           div = document.createElement('div');
           document.body.appendChild(div);
       }

       第一行代码会取得文档中所有<div>元素的HTMLCollection。由于这个集合是动态的,因此只要有新的<div>元素被加到页面中,集合都会被更新。i和div.length会同时递增,结果他们的值永远不会相等,就会无限循环。

       

    //下面代码会正常运行
    
    var divs = document.getElementsByTagName('div');
    var i,
        len,
        div;
    
     //len保存的是divs.length循环开始时的一个快照是不变的
       for(i=0;len=divs.length;i<len;i++){
           div = document.createElement('div');
           document.body.appendChild(div);
       }

      一般来说应该尽量减少访问NodeList的次数,因为每次访问NodeList都会运行一次基于文档的查询。

  • 相关阅读:
    第二次冲刺每日站立会议10(完结)
    第二次冲刺每日站立会议09
    第二次冲刺每日站立会议08
    找bug
    测试计划
    博客园的意见与建议
    第二次每日站立会议07
    个人总结
    学习进度条(第十六周)
    梦断代码阅读笔记03
  • 原文地址:https://www.cnblogs.com/skylar/p/3631359.html
Copyright © 2011-2022 走看看