XPathExpression: evaluate() 方法
XPathExpression 接口的 evaluate() 方法会在给定的节点或文档上执行 XPath 表达式,并返回一个 XPathResult。
语法
js
evaluate(contextNode)
evaluate(contextNode, type)
evaluate(contextNode, type, result)
参数
contextNode-
一个表示用于评估表达式的上下文的
Node。 type可选-
指定表达式评估后要返回的结果类型。这必须是
XPathResult.Constants中的一个。 result可选-
允许指定一个可重用并由该方法返回的结果对象。如果指定为
null或实现不重用指定的结果,则会返回一个新的结果对象。
返回值
一个表示 XPath 表达式评估结果的 XPathResult 对象。
异常
INVALID_EXPRESSION_ERR
如果表达式不符合 XPathEvaluator 的规则,则会引发类型为 INVALID_EXPRESSION_ERR 的 DOMException。
TYPE_ERR
如果结果无法转换为指定类型,则会引发类型为 TYPE_ERR 的 DOMException。
NAMESPACE_ERR
如果表达式包含由指定的 XPathNSResolver 无法解析的命名空间前缀,则会引发一个类型为 NAMESPACE_ERROR 的 DOMException。
WRONG_DOCUMENT_ERR
如果提供的上下文节点来自 XPathEvaluator 不支持的文档,则会引发类型为 WRONG_DOCUMENT_ERR 的 DOMException。
NOT_SUPPORTED_ERR
如果提供的上下文节点不是 XPath 上下文节点允许的类型,或者请求的类型不被 XPathEvaluator 允许,则会引发类型为 NOT_SUPPORTED_ERR 的 DOMException。
示例
以下示例显示了 evaluate() 方法的用法。
HTML
html
<div>XPath example</div>
<div>Number of <div>s: <output></output></div>
JavaScript
js
const xpath = "//div";
const evaluator = new XPathEvaluator();
const expression = evaluator.createExpression("//div");
const result = expression.evaluate(
document,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
);
document.querySelector("output").textContent = result.snapshotLength;
结果
规范
| 规范 |
|---|
| DOM # dom-xpathexpression-evaluate |
浏览器兼容性
加载中…