【发布时间】:2010-08-11 00:42:08
【问题描述】:
假设我有一个包含不同类型标签的大型 HTML 文件,类似于您现在正在查看的 StackOverflow。
现在假设您单击页面上的一个元素,计算引用该特定元素的最基本 XPath 的 Javascript 函数会是什么样子?
我知道在 XPath 中引用该元素有无数种方法,但我正在寻找只查看 DOM 树的东西,而不考虑 ID、类等。
例子:
<html>
<head><title>Fruit</title></head>
<body>
<ol>
<li>Bananas</li>
<li>Apples</li>
<li>Strawberries</li>
</ol>
</body>
</html>
假设您点击了苹果。 Javascript 函数将返回以下内容:
/html/body/ol/li[2]
它基本上只是沿着 DOM 树向上一直到 HTML 元素。
澄清一下,“点击”事件处理程序不是问题所在。我可以做到这一点。我只是不确定如何计算元素在 DOM 树中的位置并将其表示为 XPath。
PS 任何使用或不使用 JQuery 库的答案都值得赞赏。
PPS 我对 XPath 完全陌生,所以我什至可能在上面的示例中犯了一个错误,但你会明白的。
2010 年 8 月 11 日编辑:看起来有人问了类似的问题:generate/get the Xpath for a selected textnode
【问题讨论】:
-
XPath 使用从 1 开始的索引,所以它是
li[2]。 -
谢谢,我已经更改了代码。
标签: javascript jquery html xml xpath