What is hast-util-is-element?
The hast-util-is-element package is a utility for working with HAST (Hypertext Abstract Syntax Tree) nodes. It provides functions to check if a node is an element and optionally matches a given tag name. This is particularly useful when manipulating or inspecting HTML represented within JavaScript.
What are hast-util-is-element's main functionalities?
Check if a node is an element
This feature allows you to verify if a given node is an element node within a HAST structure. It's useful for filtering or processing nodes in a tree.
const isElement = require('hast-util-is-element');
const node = {type: 'element', tagName: 'div'};
console.log(isElement(node)); // Outputs: true
Check if a node is a specific element
This feature extends the basic check to allow for specification of the tag name. It's useful for finding or working with specific types of elements in a document.
const isElement = require('hast-util-is-element');
const node = {type: 'element', tagName: 'span'};
console.log(isElement(node, 'span')); // Outputs: true
Other packages similar to hast-util-is-element
unist-util-is
This package offers a more generalized approach for checking node types in unist trees, which is a part of the broader unified ecosystem. Unlike hast-util-is-element, unist-util-is can be used with different syntax trees beyond HTML, offering greater flexibility.
hast-util-has-property
Similar in utility scope within the HAST ecosystem, this package checks for the presence of properties in elements. While hast-util-is-element focuses on the type and tag name of nodes, hast-util-has-property deals with the properties of those nodes, providing a complementary functionality.
hast-util-is-element
hast utility to check if a node is a (certain)
element.
Install
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install hast-util-is-element
Use
import {isElement} from 'hast-util-is-element'
isElement({type: 'text', value: 'foo'})
isElement({type: 'element', tagName: 'a'}, 'a')
isElement({type: 'element', tagName: 'a'}, ['a', 'area'])
API
This package exports the following identifiers: isElement
, convertElement
.
There is no default export.
isElement(node[, test[, index, parent[, context]]])
Check if the given value is a (certain) element.
node
(Node
) — Node to check.test
(Function
, string
, or Array.<Test>
, optional)
— When array
, checks if any one of the subtests pass.
When string
, checks that the element has that tag name.
When function
, see test
index
(number
, optional) — Index of node
in parent
parent
(Node
, optional) — Parent of node
context
(*
, optional) — Context object to invoke test
with
Returns
boolean
— Whether test
passed and node
is an Element
.
Throws
Error
— When an incorrect test
, index
, or parent
is given.
A node
that is not a node, or not an element, does not throw.
function test(element[, index, parent])
Parameters
Context
*
— The to is
given context
.
Returns
boolean?
— Whether element
matches.
convertElement(test)
Create a test function from test
, that can later be called with a node
,
index
, and parent
.
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 slightly faster because it expects valid input only.
Therefore, passing invalid input, yields unexpected results.
Security
hast-util-is-element
does not change the syntax tree so there are no openings
for cross-site scripting (XSS) attacks.
Related
Contribute
See 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.
License
MIT © Titus Wormer