【问题标题】:How to find the shortest Selector如何找到最短的 Selector
【发布时间】:2012-10-19 16:07:43
【问题描述】:

如何获得任何被点击元素的最短选择器?
我想稍后使用此选择器来恢复相同(或几乎相同)的结果。

有没有现成的方法?

我的想法是优先搜索:

  1. 一次性 ID
  2. 带计数器的多用 ID
  3. 单用名称
  4. 带计数器的多用名称
  5. 一次性类名
  6. 带计数器的多用类名
  7. 到 1.-6 的最短父路径。

不知道如何构建最短路径以实现最大可靠性和最大灵活性(例如新的父标签或代码中的移动)。

【问题讨论】:

  • 这很大程度上基于标记的结构。
  • 对于 jQuery 选择器和 CSS 选择器,您会得到截然不同的结果...

标签: jquery css jquery-selectors css-selectors querypath


【解决方案1】:

我建议如下:

当一个元素被点击时

  1. 查看是否有 ID,如果有,则选择器为 #<id>
  2. 如果它没有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');
}

【讨论】:

  • 好主意,但我想在未知的外国网站上使用它,我无法在他们的代码上保存任何内容。 (并且希望每次都使用最新的实时版本)
猜你喜欢
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
相关资源
最近更新 更多