编程语言
首页 > 编程语言> > Javascript-有没有一种方法可以使用DOM查找与某个样式匹配的所有元素?

Javascript-有没有一种方法可以使用DOM查找与某个样式匹配的所有元素?

作者:互联网

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

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

$$('*').filter(function(aEl){ return aEl.getStyle('position')=='fixed' });

有更直接的方法可以做到这一点吗?

解决方法:

并非如此,您发布的内容是最好的方法.

但是,如果您经常这样做,我会考虑将其抽象为伪选择器:

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"));

ps.这会在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)"));

http://www.jsfiddle.net/h7JPS/3/

标签:mootools,dom,javascript
来源: https://codeday.me/bug/20191106/1998941.html