有没有办法根据jQuery中的DOM元素生成CSS选择器

dlr*_*ust 5 jquery dom jquery-selectors

有没有办法获取 DOM 对象并推断出一个 CSS 选择器,该选择器可用于稍后查找该元素。

例子:

<ul class="items">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>

<script type="text/javascript">
var second = $('.items li:eq(1)');
console.log(get_css_selector(second));
</script>
Run Code Online (Sandbox Code Playgroud)

get_css_selector将返回类似的东西.items li:eq(1),或者至少一个字符串,将工作选择要素。

如果有一种方法可以基于以下内容生成 CSS 选择器,那就更好了:

<script type="text/javascript">
var third = document.getElementsByTagName('li')[2];
console.log(get_css_selector(third));
</script>
Run Code Online (Sandbox Code Playgroud)

use*_*716 3

看来您正在尝试使用原始选择器。我的说法正确吗?还是我把事情过于简单化了?

原始选择器存储在您创建的 jQuery 对象中。

尝试一下: http: //jsfiddle.net/9JUJL/

var second = $('.items li:eq(1)');
var selector = second.selector;
Run Code Online (Sandbox Code Playgroud)

还是为了奖金,这个?http://jsfiddle.net/9JUJL/2/

function get_css_selector(elem) {
    var tag = elem.tagName.toLowerCase();
    return tag + ':eq(' + $(tag).index(elem) + ')';
}
Run Code Online (Sandbox Code Playgroud)