Javascript 是否有一种方法可以使用DOM查找与特定样式匹配的所有元素?

Javascript 是否有一种方法可以使用DOM查找与特定样式匹配的所有元素?,javascript,dom,mootools,Javascript,Dom,Mootools,我想要一个所有元素都有固定位置的数组 这就是我到目前为止得到的(mootools代码) 有更直接的方法吗?我建议您创建一个css类 .fixed_pos { position: fixed; } 将此类应用于所需的元素,然后 $$(".fixed_pos"); 这将为您提供所有元素不一定,您发布的内容是最好的方式 但是如果你经常这样做,我会考虑把它抽象成一个伪选择器: Selectors.Pseudo.fixed = function(){ return this.getSty

我想要一个所有元素都有固定位置的数组

这就是我到目前为止得到的(mootools代码)


有更直接的方法吗?

我建议您创建一个css类

.fixed_pos
{
   position: fixed;
}
将此类应用于所需的元素,然后

$$(".fixed_pos");

这将为您提供所有元素

不一定,您发布的内容是最好的方式

但是如果你经常这样做,我会考虑把它抽象成一个伪选择器:

Selectors.Pseudo.fixed = function(){
    return this.getStyle("position") == "fixed";
};

// can now use it as a part of a normal selector:
console.log(document.getElements("div:fixed"));
p、 这将突破mootools 1.3,因为slick使用了不同的选择器引擎

要使其在1.3中起作用,请执行以下操作:

Slick.definePseudo('fixed',function() {
    return this.getStyle("position") == "fixed";
});
最后,为了使它更通用,以便您可以在选择器中查找任何CSS属性,您可以执行以下操作:

Selectors.Pseudo.style = function(key) {
    var styles = key.split("=");
    return styles.length == 2 && this.getStyle(styles[0]) == styles[1];
};
对于mootools 1.3:

Slick.definePseudo('style', function(key) {
    var styles = key.split("=");
    return styles.length == 2 && this.getStyle(styles[0]) == styles[1];
});
如何使用它:

console.log(document.getElements("div:style(position=fixed)"));

这是真的,但在我的例子中,我使用的是未知的CSS和HTML,所以我不能依赖这样一个类的存在。(我的代码用于将被注入页面的小部件。)感谢您将我转到
console.log(document.getElements("div:style(position=fixed)"));