参见英文答案 >
Return XPath location with jQuery? Need some feedback on a function2
我试图在html dom中获取特定对象的路径.
使用javascript或jquery(当我选择/悬停在对象上)
我试图在html dom中获取特定对象的路径.
使用javascript或jquery(当我选择/悬停在对象上)
我不提前知道结构.
例如:
<html> <body> <div> <div> Not selected </div> <div> Selected Text </div> </div> </body> </html>
“选定的文本”路径应该是:
//HTML/BODY/DIV[0]/DIV[1]
任何帮助将不胜感激.
我看过this answer,但并没有给出关于元素索引的指示(在我的例子中,方括号中的值 – DIV [1]中的值).
顺便说一句,这个路径有一个“技术”的名字吗?
我看过XPath这个词,但我不确定是这样的.
快乐,享受生活.
解决方法
以下功能使您可以使用jQuery:
function getElementPath(element) { return "//" + $(element).parents().andSelf().map(function() { var $this = $(this); var tagName = this.nodeName; if ($this.siblings(tagName).length > 0) { tagName += "[" + $this.prevAll(tagName).length + "]"; } return tagName; }).get().join("/").toUpperCase(); }
你可以这样使用:
$(document).ready(function() { $("div").click(function(event) { event.stopPropagation(); window.alert(getElementPath(this)); }); });
你可以测试它here.