# dom-traverse

> DOM Traverse Utility

Latest version **0.0.1** (published 2024-01-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install dom-traverse
pnpm add dom-traverse
yarn add dom-traverse
bun add dom-traverse
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2024-01-01 |
| First published | 2024-01-01 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 8.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Yuxuan Zhang |
| Maintainers | zhangyx1998 |
| Keywords | dom, traverse, generator |

## Links

- npm: https://www.npmjs.com/package/dom-traverse
- Repository: https://github.com/zhangyx1998/dom-traverse
- Homepage: https://github.com/zhangyx1998/dom-traverse#readme
- Issues: https://github.com/zhangyx1998/dom-traverse/issues
- npm.io page: https://npm.io/package/dom-traverse

## Alternatives

- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [nopt-usage](https://npm.io/package/nopt-usage.md) — 56.7K weekly downloads
- [xsd-schema-validator](https://npm.io/package/xsd-schema-validator.md) — 36.4K weekly downloads

## Recent versions

- 0.0.1 (latest) — 2024-01-01

## README

# DOM Traverse Utility

## Example (Browser)

### 1. Basic traverse

```js
import traverse from "dom-traverse";
// Analogous to document.querySelectAll('*')
for (const node of traverse(document.body, Node.ELEMENT_NODE)) {
  // Do something ...
}
```

### 2. Skippable traverse - ignore part of the DOM

```js
import traverse from "dom-traverse";

for (const [node, skip] of traverse.skippable(
  document.body,
  Node.ELEMENT_NODE
)) {
  if (node.tagName === "H1") {
    // Do something ...
  } else {
    // Child elements of this node will NOT be iterated.
    skip();
  }
}
```

## Use with Node.JS

```js
// interface `Node` is not available in NodeJS
import traverse, { Node } from "dom-traverse";
import { JSDOM } from "jsdom";

const dom = new JSDOM("<html><!-- your html content --></html>");

for (const node of traverse(dom.window.body, Node.ELEMENT_NODE)) {
  // Do something ...
}
```

---
_Source: https://npm.io/package/dom-traverse · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
