js中HTMLCollection 累数组对象(学习理解)

(1)HTMLCollection表示HTML元素的集合,同样拥有length,item(),[].等属性方法。

常见操作返回HTMLCollection

  1. Ele.getElementsByTagName()等
  2. document.scripts //返回所有script标签集合
  3. document.links //返回所有a标签集合
  4. document.images //返回所有img标签集合
  5. document.forms
  6. tr.cells //返回所有td标签集合
  7. select.options //返回所以select全部选项。

(2)类数组对象NamedNodeMap
通过Ele.attributes得到
它获得所以属性的集合!

(3)类数组对象的动态性

  • nodeList、HTMLCollection、NamedNodeMap三个集合,都是动态的、有生命的、有呼吸的对象。
  • 他们实际上是基于Dom结构动态执行查询的结果,因此DOM结构的变化能够自动反映这些对像中。
  • 每当对象结构变化时,他们都回得到跟新,因此,他们始终都会保存着最新,最准确的信息
var divs = document.getElementByTagName('div');
var i = 0;
while(idocument.body.appendchild(document.createElement('div'));
    i++
    }

这个程序会进入死循环!
原因在于divs.length 是动态跟新的!它不断的在变化。
解决方法
就是把这个变量事先保存起来!

var divs = document.getElementByTagName('div');
var len = divs.length
var i = 0;
while(idocument.body.appendchild(document.createElement('div'));
    i++
    }

这样程序就可以达到我们的预期了。

你可能感兴趣的:(javascript)