元素的最短DOM路径(用于JavaScript/jQuery/Dojo)

Shortest DOM path of an element (for use in JavaScript/jQuery/Dojo)

本文关键字:JavaScript jQuery Dojo 用于 DOM 路径 元素      更新时间:2023-09-26

我想在点击网站中的随机元素(如Firebug或Greasemonkey用户脚本)时检索该元素的DOM路径。这部分没有问题,我返回了一个包含路径的字符串。

唯一的缺点是我不需要像这样的完整路径

html > body > div #mainPanel > table #pageBody > tbody > tr > td 

仅此一点:#pageBody > tbody > tr > td就足以使用jQuery或Dojo检索元素。

我想用Regexp删除最后一个id之前的所有内容,这应该不是问题。

至于类,我不确定我是否能做到这一点,因为查看其他元素是否与模式匹配可能会很有用。例如,在我的站点中,.DiscreetList > li匹配6个节点。我怎样才能取回好的?

除了class和id技巧之外,还有其他缩短的可能性吗?(用于jQuery/Dojo或等效程序)

编辑:在评论之后,我发现了这个片段(©Greg的代码)

现在,索引的问题已经解决了,根据评论,我决定缩短id,安全的方法是:)

谢谢你的回答。

为了准确定位元素,还需要存储元素的索引(在其父元素中)。否则,正如Pointy所提到的,即使是#pageBody > tbody > tr > td也会匹配tr内部的所有td

您可以保证唯一的元素是具有id的元素,您也可以推断某些其他元素(不能有嵌套的表单标记,只有一个head,tr标记总是有一个外部表标记,…),但这有点复杂。我会坚持使用身份证。