XPath 错误 自返回结果以来文档已发生变异

Har*_*eno 5 html javascript xpath dom

我正在尝试在页面上使用 xpath,但出现错误 Uncaught DOMException: Failed to execute 'iterateNext' on 'XPathResult': The document has mutated since the result was returned.

xpath = document.evalutate('//a', document)
xpath.iterateNext()
Run Code Online (Sandbox Code Playgroud)

怎么了?

Har*_*eno 8

问题是页面在生成 XPathResult 对象和访问其中的对象之间发生了变化。

而是使用快照

xpath = document.evaluate('//td/a', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
xpath.snapshotItem(0)
xpath.snapshotItem(1)
Run Code Online (Sandbox Code Playgroud)