2012-02-13 80 views
9

我想添加一些jQuery代码给所有具有position的元素:fixed set on them。这种事情可能吗?如果有的话,这将会非常有帮助,所以我不必通过所有的代码和额外的类来修复已修复的对象。jQuery选择具有特定CSS的元素

$('*').filter(function(){ return this.style && this.style.position === 'fixed'; }); 

更多jQuery filter()

回答

22

这其中应包括所有的情况:

$('*').filter(function() { 
    return $(this).css("position") === 'fixed'; 
}); 

不一样快qwertymk的答案,但也工作,如果不是柯林的回答

+0

我刚刚准备发布相同的代码,因为我在遇到代码时遇到了同样的问题,并且执行了同样的操作,而且工作正常。完美的是,非常感谢你 – 2012-02-13 04:10:10

+1

@mgibsonbr:比我更好的答案。 +1 – 2012-02-13 04:11:54

4

更快,更安全该css属性是从另一个规则继承的,如演示here

+3

只是好奇地知道当'this.style'和'this.style.position ==='fixed''被单独写入时会返回什么? – kushalvm 2012-02-13 11:11:16

+3

@MegaRacer这是一个保护性检查,如果'this.style'是'undefined',this.style.position'将会抛出一个错误'不能读取未定义的属性位置',因为编译器检查从左到右,如果this.style ===未定义'它会在'&&'之前的表达式失败而不会导致错误。 – 2016-05-08 09:54:02

相关问题