JavaScript';s XPath:如何获取元素的属性值?
我想获取具有特定id的特定元素的属性值。例如,我想获取JavaScript';s XPath:如何获取元素的属性值?,javascript,xpath,Javascript,Xpath,我想获取具有特定id的特定元素的属性值。例如,我想获取a标记的href,该标记的id是下一个: 但问题是,在我的例子中,属性的名称可能不同,我需要一种通过xpath查询指定它的方法。大概是这样的: console.log(document.evaluate('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().href); '//a[@id="next"]/@href' document.ev
a
标记的href
,该标记的id
是下一个:
但问题是,在我的例子中,属性的名称可能不同,我需要一种通过xpath查询指定它的方法。大概是这样的:
console.log(document.evaluate('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().href);
'//a[@id="next"]/@href'
document.evaluate('//a[@id="next"]/@href', document, null, XPathResult.ANY_TYPE, null).iterateNext().value;
试着这样做:
console.log(document.evaluate('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().href);
'//a[@id="next"]/@href'
document.evaluate('//a[@id="next"]/@href', document, null, XPathResult.ANY_TYPE, null).iterateNext().value;
根据xpath中指定的元素类型(元素节点、文本节点、属性),iterateNext()
返回不同类型的对象。在本例中,指定@href属性,它将返回一个javascript Attr对象,其属性value
包含该属性的值。继续你的例子:
<a href="?page=3" id="next">Next</a>
您可以使用
document.evaluate('//a[@id=“next”]”,document,null,XPathResult.ANY_TYPE,null)。iterateNext()。attributes['href']。value
或者
document.evaluate('//a[@id=“next”]',document,null,XPathResult.ANY_TYPE,null)。iterateNext().getAttribute('href')
为什么不执行$x('//a[@id=“next”]')[0]。getAttribute('href')
?Chrome的控制台XPath函数代表什么,类似于$
是用于querySelectorAll
。您也可以执行$x('//a[@id=“next”]/@href')[0]。value
console.log(document.evaluate('//a[@id=“next”]',document,null,XPathResult.ANY_类型,null)。iterateNext().getAttribute(_属性名称));