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