> For the complete documentation index, see [llms.txt](https://lochiwei.gitbook.io/web/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lochiwei.gitbook.io/web/browser/dom/type/node/+ext/node.traverse.md).

# node.traverse()

[🔰 JS](/web/js.md) ⟩ [browser](/web/browser.md) ⟩ [DOM](/web/browser/dom.md) ⟩ [types](/web/browser/dom/type.md) ⟩ [Node](/web/browser/dom/type/node.md) ⟩ .traverse()

{% tabs %}
{% tab title="💾 程式" %}

* 💾 replit:  [node.traverse()](https://replit.com/@pegasusroe/nodetraverse#script.js)

```javascript
// depth-first traversal
// 🔸 node.traverse()
Node.prototype.traverse = function(f){
    // do something on this node
    f(this);
    // and on its child nodes
    for(let child of this.childNodes) {
        child.traverse(f);
    } 
};
```

💈範例：

```javascript
document.traverse(elem => console.log(elem.nodeName));
```

{% endtab %}

{% tab title="📗 參考" %}

* [ ] JavaScript: The Definitive Guide (15.3 Scripting Documents)
  {% endtab %}

{% tab title="👥 相關" %}

* [traversing DOM](/web/browser/dom/traversing-dom.md)
* [Node](/web/browser/dom/type/node.md)
  {% endtab %}
  {% endtabs %}
