extra-dom
v0.6.1
Published
Utilities for DOM
Downloads
3,267
Maintainers
Readme
extra-dom
Utilities for DOM.
Install
npm install --save extra-dom
# or
yarn add extra-dom
API
flatMap
function flatMap(node: Node, fn: (node: Node) => Node[]): Node[]
Traverse the node tree and do flatMap
.
[]
: remove current node[node]
: replace current node[node1, node2, ...nodeN]
: replace current node with more nodes
map
function map(node: Node, fn: (node: Node) => Node): Node
Traverse the node tree and do map
.
filter
function filter(node: Node, predicate: (node: Node) => unknown): Node | undefined
Traverse the node tree and do filter
.
unwrap
function unwrap(node: Node, predicate: (node: Node) => unknown): Node[]
Traverse the node tree and do unwrap
.
find
function find(node: Node, predicate: (node: Node) => unknown): Node | undefined
Traverse the node tree and do find
.
parse
function parse(html: string): Node[]
stringify
function stringify(nodes: Node[]): string
normalize
function normalize(html: string): string
It is the shortcut for stringify(parse(html))
.
removeAllChildren
function removeAllChildren(node: Node): void
removeAttributes
function removeAttributes(node: Node, predicate: (name: string) => unknown): void
getBySelector
function getBySelector<T extends Element>(
this: void | Element | Document
, selectors: string
): T
Return the first matched element.
If cannot find any elements, it throws.
getAllBySelector
function getAllBySelector<T extends Element>(
this: void | Element | Document
, selectors: string
): T[]
Return matched elements.
If cannot find any elements, it throws.
traverseAncestorNodes
function traverseAncestorNodes(node: Node): Iterable<Node & ParentNode>
traverseDescendantNodes
function traverseDescendantNodes(node: Node): Iterable<ChildNode>
findInAncestorNodes
function findInAncestorNodes(
node: Node
, predicate: (node: Node & ParentNode) => unknown
): (Node & ParentNode) | undefined
findInDescendantNodes
function find(node: Node, predicate: (node: ChildNode) => unknown): ChildNode | undefined
findInPrecedingSiblingNodes
function findInPrecedingSiblingNodes(
node: Node
, predicate: (node: Node) => unknown
): Node | undefined
This function uses Node.previousSibling
to traverse the preceding sibling nodes.
findInFollowingSiblingNodes
function findInFollowingSiblingNodes(
node: Node
, predicate: (node: Node) => unknown
): Node | undefined
This function uses Node.nextSibling
to traverse the following sibling nodes.
parentNode
function parentNode(node: Node, distance: number = 1): (Node & ParentNode) | undefined
nextSibling
function nextSibling(node: Node, distance: number = 1): ChildNode | undefined
previousSibling
function previousSibling(node: Node, distance: number = 1): ChildNode | undefined
nextElementSibling
function nextElementSibling(node: Node, distance: number = 1): Element | undefined
previousElementSibling
function previousElementSibling(node: Node, distance: number = 1): Element | undefined
isDocument
function isDocument(val: any): val is Document
isntDocument
function isntDocument<T>(val: T): val is Exclude<T, Document>
isElement
function isElement(val: any): val is Element
isntElement
function isntElement<T>(val: T): val is Exclude<T, Element>
isTextNode
function isTextNode(val: any): val is Text
isntTextNode
function isntTextNode<T>(val: any): node is Exclude<T, Text>
isNode
function isNode(val: any): val is Node
isntNode
function isntNode<T>(val: T): val is Exclude<T, Node>
isParentNode
function isParentNode(val: any): val is Node & ParentNode
isntParentNode
function isntParentNode<T>(val: any): val is Exclude<T, Node & ParentNode>
isBefore
function isBefore(subject: Node, object: Node): boolean
isAfter
function isAfter(subject: Node, object: Node): boolean
createDOMParser
function createDOMParser(): DOMParser
NodeType
enum NodeType {
ELEMENT_NODE
, ATTRIBUTE_NODE
, TEXT_NODE
, CDATA_SECTION_NODE
, ENTITY_REFERENCE_NODE
, ENTITY_NODE
, PROCESSING_INSTRUCTION_NODE
, COMMENT_NODE
, DOCUMENT_NODE
, DOCUMENT_TYPE_NODE
, DOCUMENT_FRAGMENT_NODE
, NOTATION_NODE
}
XPathResultType
enum XPathResultType {
ANY_TYPE
, NUMBER_TYPE
, STRING_TYPE
, BOOLEAN_TYPE
, UNORDERED_NODE_ITERATOR_TYPE
, ORDERED_NODE_ITERATOR_TYPE
, UNORDERED_NODE_SNAPSHOT_TYPE
, ORDERED_NODE_SNAPSHOT_TYPE
, ANY_UNORDERED_NODE_TYPE
, FIRST_ORDERED_NODE_TYPE
}