1. 程式人生 > >遞迴尋找頁面所有元素節點

遞迴尋找頁面所有元素節點

//建立一個回撥函式尋找所有元素節點
function queryNode(node) {
    //查詢所有子節點並且放到nodeList這個陣列中
    var nodeList = node.childNodes;
    //定義一個數組,用來存放符合要求的元素節點
    var arrNode = [];
    //遍歷nodeList這個陣列,尋找符合要求的元素節點
    for (var i = 0; i < nodeList.length; i++) {
        var node = nodeList[i];
        //nodeType == 1;元素節點
        //nodeType == 2;屬性節點
        //nodeType == 3;文字節點
        if(node.nodeType == 1){
            arrNode.push(node);
            //繼續進行遞迴尋找下一級的節點
            var temp = queryNode(node);
            //把兩個陣列進行合併,就是所有符合要求的節點
            arrNode = arrNode.concat(temp);
        }
    }
    return arrNode;
}