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";