【发布时间】:2020-03-25 23:32:56
【问题描述】:
我有一个 html 文档,正在尝试访问最后一个 TABLE 元素。
如果我执行以下操作 - 我会得到正确的快照长度 5。
var headings = document.evaluate( ".//table[@class='blue']",document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
查看 HTML 页面结构 - xpath 捕获的 TABLES 中有 2 个是嵌套的
表 桌子 桌子 桌子 TABLE
文档中只有5个表,class='blue'
我想访问最后一个 - 所以我做到了:
var headings = document.evaluate( ".//table[@class='blue'][last()]",document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
它返回一个意外的长度 4 - 我期待 1。
最后一个快照条目 (idx=3) 是正确的 TABLE。使用 last() 时,它似乎跳过了 1 个隐藏的表。
我怎样才能得到最后一个 TABLE 元素?
查看 html 文档 - 有 class='blue' 的 5 个表,其中两个是嵌套的
TABLE
TABLE
TABLE
TABLE
TABLE <<-- I'm interested in this one
我试过了
var headings = document.evaluate( ".//table[@class='blue' and position() = last()]",document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
它返回的长度为 3 - 中间的三个表。
【问题讨论】:
-
我相信是
[position() = last()]... -
不,不是这样。我认为这与双方括号有关。有没有办法在第一个括号内做逻辑和?
标签: javascript xpath