2012-02-13 77 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

相關問題