Jquery 如何找到最短的选择器

Jquery 如何找到最短的选择器,jquery,css,jquery-selectors,css-selectors,querypath,Jquery,Css,Jquery Selectors,Css Selectors,Querypath,如何为任何单击的元素获取最短的选择器? 我希望稍后使用此选择器恢复相同(或几乎相同)的结果 有没有现成的方法 我的想法是优先搜索: 单用ID 带计数器的多用ID 单一使用名称 带计数器的多用名称 单用类名 带计数器的多用类名 到1-6的最短父路径 不是舒尔如何构建一条短路径以实现最大的可靠性和灵活性(例如新的父标签或代码中的移动)。我建议如下: var selector = ''; $('element').click(function() { var self = $(this);

如何为任何单击的元素获取最短的选择器?
我希望稍后使用此选择器恢复相同(或几乎相同)的结果

有没有现成的方法

我的想法是优先搜索:

  • 单用ID
  • 带计数器的多用ID
  • 单一使用名称
  • 带计数器的多用名称
  • 单用类名
  • 带计数器的多用类名
  • 到1-6的最短父路径

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

    我建议如下:

    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');
    }
    
    单击某个元素时

  • 查看它是否有ID,如果有,您的选择器是
    #
  • 如果它没有ID,则生成一个随机标识符并将其指定为元素的ID,您的选择器是
    #
  • i、 e.类似于:

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

    这在很大程度上是基于标记的结构。对于jQuery选择器和CSS选择器,您会得到截然不同的结果…好主意,但我想在未知的外国网站上使用它,我无法在它们的代码中保存任何内容。(并希望每次都使用最新的实时版本)