高性能Javascript 在DOM中爬行

Walking the DOM

DOM提供很多API,在相应操作中,选择最高效的API.

一、用childNodes获得元素集合,再遍历

二、用nextSibling来获取每个相邻元素, firstChild + nextSibling 加do while

写法

var el = document.getElementById('mydiv'),

  ch = el.firstChild,

  name = '';

do{

  name = ch.nodeName;

} while( ch = ch.nextSibling); while ch = ch.nextSibling

nextSibling 在ie6中比childNodes快16倍,在ie7中快105倍

元素节点

遍历中要过滤掉文本节点,而childNodes中却有这样的。

新API中有只获取元素节点的方法

children ie6也有

childElementCount

firstElementChild

lastElementChild

nextElementSibling

previousElementSibling

childre比childNodes快很多.