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
Check if a node is a (certain) HAST element.
Installation
npm:
npm install hast-util-is-element
hast-util-is-element is also available as an AMD, CommonJS, and
globals module, uncompressed and compressed.
Usage
Dependencies:
var isElement = require('hast-util-is-element');
Given a non-element:
var result = isElement({
'type': 'text',
'value': 'foo'
});
Yields:
false
Given a matching element:
result = isElement({
'type': 'element',
'tagName': 'a'
}, 'a');
Yields:
true
Given multiple tagNames:
result = isElement({
'type': 'element',
'tagName': 'a'
}, ['a', 'area']);
Yields:
true
API
isElement(node[, tagName|tagNames])
Check if a node is a (certain) HAST element.
When not given a second parameter, asserts if node
is an element,
otherwise asserts node
is an element whose tagName
matches / is
included in the second parameter.
Parameters:
node
(*
) — Value to check;tagName
(string
, optional) — Value node
s tagName
must match;tagNames
(string
, optional) — Value including node
s tagName
.
Returns: boolean
, whether node
passes the test.
Throws: when the second parameter is given but invalid.
License
MIT © Titus Wormer