2014-03-07 77 views
3

假設在我的樣式表:我該如何檢測jQuery的css值?

.test{width: 20px; height: 50px; color: blue;} 
.some-test{padding: 20px; margin: 10px;} 
.even-test{font-size: 20px; color: red;} 

是否有可能檢測每個CSS屬性的20px值,這樣我可以更換呢?


我假定檢測是這樣的:

$('.selector').filter(function() { 
    return $(this).css(property) === '20px'; 
}).css(property, value); 

是不是有什麼事情是這樣的:style.arguments[]

+0

['的.css()'](http://api.jquery.com/css/) - 谷歌是你的朋友。這適用於給出這個類的元素。 – Christoph

+0

儘管一個元素被賦予了這樣的類,但只能檢測到它。 –

+0

您無法使用jQuery –

回答

0

您可以在jQuery中使用過濾器函數來查找具有該寬度的所有元素。

$('.allYourSelectors').filter(function() { 
    return $(this).css('width') === '20px'; 
}).css("width", newWidth); 

然而,這將是最好只給他們所有可以修改同一類。

+0

這只是爲了寬度,但我想檢測每個屬性的價值。 –

+0

@ C-link然後你必須做如上的多個陳述。 – Jivings

+0

做'this.style.width'並避免在jQuery中包裝元素的開銷會更好嗎? –

0

要通過CSS樣式搜索(不知道這得風格=「...」的風格):

var parseStyle = function(rules) { 
    for (var i = 0; i < rules.length; ++i) 
    { 
     console.log(rules[i].style.width); 
    } 
}; 

//care needs to be taken as to when this executes - styles may not have been loaded yet 
for (var i = 0; i < document.styleSheets.length; ++i) 
    if (document.styleSheets[i].rules && document.styleSheets[i].rules.length > 0) 
     parseStyle(document.styleSheets[i].rules); 

如果這不是你想要的CSS屬性,但在元素上的樣式的結果,這可能是更你以後......

var element = ... jquery or whatever 
var elementStyle = element.currentStyle || getComputedStyle(element); 
console.log(elementStyle.width);