DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
raw
history blame
1.32 kB
/**
* Given a CSS selector, returns the first matching node, if any.
* @param {string} css the CSS selector to query
* @param {Document | DocumentFragment | Element} [root] the optional parent node to query
* @returns {Element?} the found element, if any
*/
const $ = (css, root = document) => root.querySelector(css);
/**
* Given a CSS selector, returns a list of all matching nodes.
* @param {string} css the CSS selector to query
* @param {Document | DocumentFragment | Element} [root] the optional parent node to query
* @returns {Element[]} a list of found nodes
*/
const $$ = (css, root = document) => [...root.querySelectorAll(css)];
/**
* Given a XPath selector, returns a list of all matching nodes.
* @param {string} path the XPath selector to evaluate
* @param {Document | DocumentFragment | Element} [root] the optional parent node to query
* @returns {Node[]} a list of found nodes (elements, attributes, text, comments)
*/
const $x = (path, root = document) => {
const expression = (new XPathEvaluator).createExpression(path);
const xpath = expression.evaluate(root, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);
const result = [];
for (let i = 0, {snapshotLength} = xpath; i < snapshotLength; i++)
result.push(xpath.snapshotItem(i));
return result;
};
export { $, $$, $x };