JavaScript 的 XPath:如何获取元素的属性值?

Bob*_*ent 6 javascript xpath

我想获取具有特定 id 的特定元素的属性值。对于一个例子,我想要得到的href了的a,其标签id未来

<a href="?page=3" id="next">Next</a>
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样得到它:

console.log(document.evaluate('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().href);
Run Code Online (Sandbox Code Playgroud)

但问题是,在我的情况下,属性的名称可能不同,我需要一种通过 xpath 查询来指定它的方法。像这样的东西:

'//a[@id="next"]/@href'
Run Code Online (Sandbox Code Playgroud)

ljm*_*gui 5

试试这样的事情:

document.evaluate('//a[@id="next"]/@href', document, null, XPathResult.ANY_TYPE, null).iterateNext().value;
Run Code Online (Sandbox Code Playgroud)

根据您在 xpath 中指定的元素类型(元素节点、文本节点、属性),iterateNext()返回不同类型的对象。在这种情况下,指定 @href 属性,它将返回一个 javascript Attr 对象,该对象的属性value包含该属性的值。继续你的例子:

<a href="?page=3" id="next">Next</a>
Run Code Online (Sandbox Code Playgroud)

您可以尝试下一个示例:

document.evaluate('//a[@id="next"]/@href', document, null, XPathResult.ANY_TYPE, null).iterateNext().value;
Run Code Online (Sandbox Code Playgroud)
<a href="?page=3" id="next">Next</a>
Run Code Online (Sandbox Code Playgroud)

一些可以帮助您的链接: