问题描述
||
单击此元素时,我想检索网站中一个随机元素的DOM路径(如Firebug或此Greasemonkey userscript)。这部分没问题,我返回一个包含路径的字符串。
唯一的缺点是我不需要完整的路径,例如
html > body > div #mainPanel > table #pageBody > tbody > tr > td
就是这样:#pageBody > tbody > tr > td
足以使用jQuery或Dojo检索元素。
我想到了使用Regexp删除最后一个ID之前的所有内容,这应该不是问题。
至于类,我不确定是否可以这样做,因为查看其他元素是否与模式匹配可能很有用。例如,在我的网站中,“ 2”匹配6个节点。我该如何找回好人?
除了class和id技巧外,还有其他缩短方法的可能性吗? (用于jQuery / Dojo或同等版本)
编辑:在评论之后,我找到了这个片段(©Greg \的代码)
现在,索引的问题已解决,我根据评论决定通过id缩短行进路线:)
感谢您的回答。
解决方法
为了准确定位元素,您还需要存储元素的索引(在其父元素内)。否则,如Pointy所述,即使
#pageBody > tbody > tr > td
也将匹配tr
内部的所有td
\。
,您唯一可以保证唯一的元素是具有id的元素,并且您也可以对某些其他元素进行推理(不能有嵌套的表单标签,只有一个标头,tr标签始终有一个外部表格标签,...),但是有些令人费解。我会坚持用id \'s。