我想要一个具有固定位置的所有元素的数组。
这是我到目前为止所获得的(mootools代码)
$$('*').filter(function(aEl){ return aEl.getStyle('position')=='fixed' });
有更直接的方法吗?
答案 0 :(得分:4)
不是真的,你发布的是最好的方式。
但如果你经常这样做,我会考虑将它抽象为伪选择器:
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.S。这将在mootools 1.3中打破,因为光滑使用不同的选择器引擎。
使其在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)"));
答案 1 :(得分:0)
我建议你做一个css课
.fixed_pos
{
position: fixed;
}
将此类应用于您想要的元素,然后
$$(".fixed_pos");
这将为您提供所有元素