如何找到最短的 Selector
Posted
技术标签:
【中文标题】如何找到最短的 Selector【英文标题】:How to find the shortest Selector 【发布时间】:2012-10-19 16:07:43 【问题描述】:如何获得任何被点击元素的最短选择器? 我想稍后使用此选择器来恢复相同(或几乎相同)的结果。
有没有现成的方法?
我的想法是优先搜索:
-
一次性 ID
带计数器的多用 ID
单用名称
带计数器的多用名称
一次性类名
带计数器的多用类名
到 1.-6 的最短父路径。
不知道如何构建最短路径以实现最大可靠性和最大灵活性(例如新的父标签或代码中的移动)。
【问题讨论】:
这很大程度上基于标记的结构。 对于 jQuery 选择器和 CSS 选择器,您会得到截然不同的结果... 【参考方案1】:我建议如下:
当一个元素被点击时
-
查看是否有 ID,如果有,则选择器为
#<id>
如果它没有ID,则生成一个随机标识符并将其分配为元素的ID,您的选择器为#<generated-id>
即类似:
var selector = '';
$('element').click(function()
var self = $(this);
if(!self.is('[id]'))
var id = 'ljhlihj'; // replace with code to generate random ID
self.attr('id', id);
selector = '#' + self.attr('id');
【讨论】:
好主意,但我想在未知的外国网站上使用它,我无法在他们的代码上保存任何内容。 (并且希望每次都使用最新的实时版本)以上是关于如何找到最短的 Selector的主要内容,如果未能解决你的问题,请参考以下文章