如何找到最短的选择器

时间:2012-10-30 10:22:45

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

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

有现成的方法吗?

我的想法是优先搜索:

  1. 单用ID
  2. 带计数器的多用户ID
  3. 单用名称
  4. 带计数器的多用名称
  5. 单用类名
  6. 带有计数器的多用途类名
  7. 最短的父路径1.-6。
  8. 如何建立一条最短路径以获得最大可靠性和最大灵活性(例如新的父标签或代码中的移动)。

1 个答案:

答案 0 :(得分:0)

我会建议像:

点击元素时

  1. 查看是否有ID,如果是,则选择器为#<id>
  2. 如果它没有ID,请生成随机标识符并将其指定为元素的ID,您的选择器为#<generated-id>
  3. 即。类似的东西:

    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');
    }