document.getElementById
、document.getElementsByClassName
、document.getElementsByTagName
和其他几个可以在不是 document
的其他元素/节点上调用(例如,element.getElementsByTagName
)。我在某处读到 document.evaluate
也可以这样使用,但是当我尝试 element.evaluate
时,我收到错误。难道我读错了?
更新 #1:传递不同的
contextNode
并不是解决方案。返回与设置为 document
时相同的节点,除非更改 XPath 表达式以匹配它。即使我确实这样做了(出于多种原因我不想这样做),这也没有提供在与 DOM 分离的节点上调用 evaluate
的方法。
也许您使用以“//”开头的 xpath 表达式,例如“//div[@class=light]”。使用“.//”代替