樹走

TreeWalker 是一個類似於生成器的介面,可以簡單有效地遞迴過濾 DOM 樹中的節點。

以下程式碼連線頁面中所有 Text 節點的值,並列印結果。

let parentNode = document.body;
let treeWalker = document.createTreeWalker(parentNode, NodeFilter.SHOW_TEXT);

let text = "";
while (treeWalker.nextNode())
    text += treeWalker.currentNode.nodeValue;

console.log(text); // all text in the page, concatenated

.createTreeWalker 函式有一個簽名

createTreeWalker(root, whatToShow, filter, entityReferenceExpansion)
引數 細節
root 子樹的節點將被轉移
whatToShow 可選,unsigned long 指定要顯示的節點型別。有關更多資訊,請參閱 NodeFilter。
filter 可選,具有 acceptNode 方法的物件,用於在通過 whatToShow 檢查後確定是否應該考慮節點
entityReferenceExpansion 已過時且可選,是一個布林標誌,指示在丟棄 EntityReference 時是否必須同時丟棄其整個子樹。