xpath - 将搜索限制为节点不起作用?

发布于 2024-08-31 16:52:43 字数 309 浏览 5 评论 0原文

我在这里做错了什么?我试图将 xpath 搜索限制到表中的特定行,但我的查询始终返回第一行中跨度的内容:

var query = "//span[contains(@id, 'timer')]";
var root = document.getElementById('movements').rows[1];
document.evaluate(query, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.textContent

请帮忙!

What am I doing wrong here? I am trying to limit my xpath search to a specific row in my table but my query always returns the content of the span in the first row:

var query = "//span[contains(@id, 'timer')]";
var root = document.getElementById('movements').rows[1];
document.evaluate(query, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.textContent

Please help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

终陌 2024-09-07 16:52:43
"//span[包含(@id, 'timer')]"

问题:这是一个绝对 XPath 表达式,它忽略了您从特定行对其求值的事实。

解决方案:要达到想要的结果,请使用:

.//span[contains(@id, 'timer')]

"//span[contains(@id, 'timer')]"

The problem: This is an absolute XPath expression and it ignores the fact that you are evaluating it from a specific row.

Solution: To achieve the wanted result use:

.//span[contains(@id, 'timer')]

苏璃陌 2024-09-07 16:52:43

您将获得第一行:

var root = document.getElementById('movements').rows[1];

这将获得第二行:

var root = document.getElementById('movements').rows[2];

您需要指定所需行的正确索引。

You are getting the first row:

var root = document.getElementById('movements').rows[1];

This will get the second row:

var root = document.getElementById('movements').rows[2];

You need to specify the correct index of the row you want.

请远离我 2024-09-07 16:52:43

试试这个:

var query = "//td//span[contains(@id, 'timer')]";

Try this instead:

var query = "//td//span[contains(@id, 'timer')]";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文