javascript DOM 遍历

以下一系列的辅助函数可以帮助您,他们能取代标准的previousSibling,nextSibling,firstChild,lastChild,parentNode;

 1 // ------------------------DOM 遍历,如果元素没找到则返回null-----------------------//    
 2      // ---查找相关元素的前一个兄弟元素---//    
 3      function  prev(elem) {    
 4        do{    
 5            elem=elem.previousSibling;    
 6        }
while(elem&&elem.nodeType!=1);    
 7        return elem;    
 8    }
    
 9      // ---查找相关元素的下一个兄弟元素---//    
10      function  next(elem) {    
11        do{    
12            elem=elem.nextSibling;    
13        }
while(elem&&elem.nodeType!=1);    
14        return elem;    
15    }
    
16      // ---查找第一个子元素的函数---//    
17      function  first(elem) {    
18        elem=elem.firstChild;    
19        return elem && elem.nodeType!=1 ?next(elem):elem;    
20    }
    
21      // ---查找最后一个子元素的函数---//    
22      function  last(elem) {    
23        elem=elem.lastChild;    
24        return elem && elem.nodeType!=1 ?prev(elem):elem;    
25    }
    
26      // ---查找父级元素的函数---//    
27      // num是父级元素的级次,parent(elem,2)等价于parent(parent(elem))    
28      function  parent(elem,num) {    
29        num=num||1;    
30        for(var i=0; i<num; i++){    
31            if(elem!=null){    
32                elem=elem.parentNode;    
33            }
    
34        }
    
35        return elem;    
36    }
 

调用案例:first(document.getElementById("everywhere")).style.backgroundColor="#ff0000";