假设我有一个包含不同类型标签的大型 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>
假设您单击Apples。Javascript 函数将返回以下内容:
/html/body/ol/li[2]
它基本上只是沿着 DOM 树向上一直工作到 HTML 元素。
只是为了澄清,“点击”事件处理程序不是问题所在。我可以做到这一点。我只是不确定如何计算元素在 DOM 树中的位置并将其表示为 XPath。
PS 任何使用或不使用 JQuery 库的答案都值得赞赏。
PPS 我对 XPath 完全陌生,所以我什至可能在上面的例子中犯了一个错误,但你会明白的。
2010 年 8 月 11 日编辑:看起来其他人问了类似的问题:为选定的文本节点生成/获取 Xpath