hast utility to check if a node is a (certain) element.
This package is a small utility that checks that a node is a certain element.
Use this small utility if you find yourself repeating code for checking what elements nodes are.
A similar package, unist-util-is
, works on any unist node.
For more advanced tests, hast-util-select
can be used to match against CSS selectors.
This package is ESM only. In Node.js (version 16+), install with npm:
npm install hast-util-is-element
In Deno with esm.sh
:
import {isElement} from 'https://esm.sh/hast-util-is-element@3'
In browsers with esm.sh
:
<script type="module"> import {isElement} from 'https://esm.sh/hast-util-is-element@3?bundle' </script>
import {isElement} from 'hast-util-is-element' isElement({type: 'text', value: 'foo'}) // => false isElement({type: 'element', tagName: 'a', properties: {}, children: []}) // => true isElement({type: 'element', tagName: 'a', properties: {}, children: []}, 'a') // => true isElement({type: 'element', tagName: 'a', properties: {}, children: []}, 'b') // => false isElement({type: 'element', tagName: 'a', properties: {}, children: []}, ['a', 'area']) // => true
This package exports the identifiers convertElement
and isElement
. There is no default export.
isElement(element[, test[, index, parent[, context]]])
Check if element
is an Element
and whether it passes the given test.
element
(unknown
, optional) — thing to check, typically Node
test
(Test
, optional) — check for a specific elementindex
(number
, optional) — position of element
in its parentparent
(Parent
, optional) — parent of element
context
(unknown
, optional) — context object (this
) to call test
withWhether element
is an Element
and passes a test (boolean
).
When an incorrect test
, index
, or parent
is given. There is no error thrown when element
is not a node or not an element.
Generate a check from a test.
Useful if you’re going to test many nodes, for example when creating a utility where something else passes a compatible test.
The created function is a bit faster because it expects valid input only: a element
, index
, and parent
.
test
(Test
, optional) — a test for a specific elementA check (Check
).
Check that an arbitrary value is an element (TypeScript type).
this
(unknown
, optional) — context object (this
) to call test
withelement
(unknown
) — anything (typically an element)index
(number
, optional) — position of element
in its parentparent
(Parent
, optional) — parent of element
Whether this is an element and passes a test (boolean
).
Check for an arbitrary element (TypeScript type).
string
, checks that the element has that tag namefunction
, see TestFunction
Array
, checks if one of the subtests passtype Test = | Array<TestFunction | string> | TestFunction | string | null | undefined
Check if an element passes a test (TypeScript type).
element
(Element
) — an elementindex
(number
or undefined
) — position of element
in its parentparent
(Parent
or undefined
) — parent of element
Whether this element passes the test (boolean
, optional).
This package is fully typed with TypeScript. It exports the additional types Check
, Test
, and TestFunction
.
Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, hast-util-is-element@^3
, compatible with Node.js 16.
hast-util-is-element
does not change the syntax tree so there are no openings for cross-site scripting (XSS) attacks.
hast-util-has-property
— check if a node has a propertyhast-util-is-body-ok-link
— check if a node is “Body OK” link elementhast-util-is-conditional-comment
— check if a node is a conditional commenthast-util-is-css-link
— check if a node is a CSS link elementhast-util-is-css-style
— check if a node is a CSS style elementhast-util-embedded
— check if a node is an embedded elementhast-util-heading
— check if a node is a heading elementhast-util-interactive
— check if a node is interactivehast-util-is-javascript
— check if a node is a JavaScript script elementhast-util-labelable
— check whether a node is labelablehast-util-phrasing
— check if a node is phrasing contenthast-util-script-supporting
— check if a node is a script-supporting elementhast-util-sectioning
— check if a node is a sectioning elementhast-util-transparent
— check if a node is a transparent elementhast-util-whitespace
— check if a node is inter-element whitespaceSee contributing.md
in syntax-tree/.github
for ways to get started. See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4