/*深度优先递归实现*/
参数node表示dom节点,
比如var domEle=document.getElementsByTagName("html")[0];
deepTraversal(domEle);
var nodes=[];//nodes必须放在函数外面
function deepTraversal(node)
{ if(node!=null){
nodes.push(node);
var children=node.children;
for(var i=0;i<children.length;i++){ d
eepTraversal(children[i]);
}
} return nodes;}
/*深度优先非递归实现*/
var nodes=[];
function deepTraversal(node) {
if(node!=null){
var stack==[];
stack.push(node);
while(stack.length!=0){
var item=stack.pop();
nodes.push(item);
var children=item.children;
for(var i=children.length-1;i>=0;i--){
stack.push(children[i]);
}
}
}
}
/*广度优先递归实现*/
//遍历结果
function wideTraversal(node) {
var nodes=[] ; //nodes可放函数中
var i = 0;
if (!(node == null)) {
nodes.push(node);
wideTraversal(node.nextElementSibling);
node = nodes[i++];
wideTraversal(node.firstElementChild);
}
return nodes;
}
/*广度优先非递归实现*/
var nodes =[] ;
function wideTraversal(selectNode) {
if (selectNode != null) {
var queue=[]; queue.unshift(selectNode);//在数组的前端添加项
while (queue.length != 0) { var item = queue.shift();//移除数组中的第一项,并返回该项
nodes.push(item);//向数组末端添加项
var children = item.children;
for (var i = 0; i < children.length; i++)
queue.push(children[i]);
}
}
return nodes;
}