假设我有一个包含不同类型标签的大型HTML文件,类似于您现在正在查看的StackOverflow.
现在让我们说你单击页面上的一个元素,Javascript函数会是什么样的,它会计算引用该特定元素的最基本的XPath?
我知道在XPath中有一种无限的方式来引用该元素,但我正在寻找一些只关注DOM树的东西,而不考虑ID,类等.
例:
<html>
<head><title>Fruit</title></head>
<body>
<ol>
<li>Bananas</li>
<li>Apples</li>
<li>Strawberries</li>
</ol>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
假设您点击苹果.Javascript函数将返回以下内容:
/html/body/ol/li[2]
Run Code Online (Sandbox Code Playgroud)
它基本上只是向上运行DOM树一直到HTML元素.
只是为了澄清,'on-click'事件处理程序不是问题.我能做到这一点.我只是不确定如何计算元素在DOM树中的位置并将其表示为XPath.
PS赞赏使用或不使用JQuery库的任何答案.
PPS我对XPath完全不熟悉,所以我甚至可能在上面的例子中犯了一个错误,但你会明白这个想法.
编辑于2010年8月11日:看起来有人问了一个类似的问题:为选定的textnode生成/获取Xpath
我正在寻找一种方法来查找单击元素的完整路径.
例如,假设我有这个HTML代码:
<div> <ul> <li>item 1</li> <li>item 2</li> </ul> </div>
<div> <ul> <li>item 1</li> <li>item 2</li> </ul> </div>
Run Code Online (Sandbox Code Playgroud)
我想能够返回被点击的元素的路径(不知道还有什么叫它).alert()现在会做.
假设我点击了第二个div中的第二个li元素.我想回电话:
div:eq(1) li:eq(1)
Run Code Online (Sandbox Code Playgroud)
如果我点击第一个div的第一个li元素,它将是:
div:eq(0) li:eq(0)
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
是否有可以执行此操作的插件,或者我是否需要从头开始获取路径中的元素索引?
谢谢 :)