【发布时间】:2011-11-18 23:52:26
【问题描述】:
我正在编写一个应用程序,其中我将元素的相对引用存储为适合传递给 querySelector 的 CSS 选择器。当我想存储对“基本”元素的相对引用时,我想要一个返回相同元素的选择器。
在Level 1 Selectors API 中定义的Element 的querySelector 方法的标识选择器满足以下条件吗?
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";
}
}
更新:
由于此选择器不可用,我将使用一个函数包装对 querySelector 的调用,如果选择器等于伪类 :root,则该函数返回上下文元素。
var identitySelector = ":root"
var querySelectorProxy = function(elem, selector) {
return selector === ':root' ? elem: elem.querySelector(identitySelector);
}
for (int i = 0; i < document.all.length; i++) {
var elem = document.all[i];
if (elem !== querySelectorProxy(elem, selector)) {
throw identitySelector + " is not the identity selector";
}
}
【问题讨论】:
标签: javascript dom css-selectors selectors-api