Javascript element.querySelector的标识选择器?

Javascript element.querySelector的标识选择器?,javascript,dom,css-selectors,selectors-api,Javascript,Dom,Css Selectors,Selectors Api,我正在编写一个应用程序,其中存储对元素的相对引用,作为适合传递到querySelector的CSS选择器。当我想存储对“base”元素的相对引用时,我希望有一个选择器返回相同的元素 满足以下条件的元素的查询选择器方法的标识选择器是什么 var identitySelector = "<this is the selector I want to know>" for (int i = 0; i < document.all.length; i++) { var ele

我正在编写一个应用程序,其中存储对元素的相对引用,作为适合传递到querySelector的CSS选择器。当我想存储对“base”元素的相对引用时,我希望有一个选择器返回相同的元素

满足以下条件的
元素
查询选择器
方法的标识选择器是什么

var identitySelector = "<this is the selector I want to know>"

for (int i = 0; i < document.all.length; i++) {
    var elem = document.all[i];
    if (elem !== elem.querySelector(identitySelector)) {
        throw identitySelector + " is not the identity selector";
    }
}
没有


John Resig在他的博客主题中提供了一个

他的意见是,虽然可以从任何元素节点进行搜索,但传递的选择器会考虑整个文档。(就个人而言,我认为这是正确的方法。)因此,他希望会有一个像你所描述的身份选择器

jQuery(Sizzle)使用了一点技巧,即使用元素的ID(如果不可用,则分配一个临时的ID)并重新构造选择器以预先添加该ID选择器

大概是这样的:

var identitySelector = "<this is the selector I want to know>"

for (int i = 0; i < document.all.length; i++) {
    var elem = document.all[i],
        needs_id = false;
    if( !elem.id ) {
        needs_id = true;
        elem.id = '___some___obscure___value___';
    }
    if (elem !== elem.querySelector( '#' + elem.id )) {
        throw identitySelector + " is not the identity selector";
    }
    if( needs_id ) {
        elem.id = null;
    }
}
var identitySelector=“”
for(int i=0;i