2013-07-03 41 views
0

其實我正在學習jQuery並使用Twitter BootStrap嘗試開發WP模板。 我想實現的是使用jquery更改css屬性的可能性。是否可以使用.css()更改屬性

這就是我想實現

從這個什麼:

margin-left: 2.564102564102564%; 

要這樣:

margin-right: 2.564102564102564%; 

正如你可以看到,我想保留的價值,但改變屬性。

這是 '原始' 的CSS部分:

.row-fluid [class*="span"] { 
display: block; 
width: 100%; 
min-height: 30px; 
-webkit-box-sizing: border-box; 
-moz-box-sizing: border-box; 
box-sizing: border-box; 
float: left; 
margin-left: 2.564102564102564%; 
} 

回答

3
var elems = $('.row-fluid [class*="span"]'); 

elems.css({ 
    marginRight : elems.css('margin-left'), // gets the margin from the first element 
    marginLeft : 0 
}); 

注意css()設置爲集合中的所有元素的值,但是會從集合中的第一個元素的值。

+0

+1時執行兩次工作以保存jQuery對象。 – War10ck

0

你必須做的兩個步驟。取下留有餘量,再放入右頁邊距:

$('.row-fluid [class*="span"]').css('margin-left', 0); 
$('.row-fluid [class*="span"]').css('margin-right', '2.564102564102564%'); 
+4

出於好奇,你爲什麼要選擇兩次?這會迫使jQuery在定位元素時執行兩次工作(參考文獻) – Dutchie432

+0

僅供參考:['.css()'](http://api.jquery.com/css/#css2)可以將指定多個屬性的對象立即改變。 – War10ck

+0

你們都是對的...... Upvoting你的答案,@ Dutchie432! :) – bfavaretto

5

你只需要相應調整margin-leftmargin-right值。

$('.row-fluid [class*="span"]').css({ 
    'margin-left':'0', 
    'margin-right':'2.564102564102564%' 
}); 
+0

你的解決方案是好的,但它也可以通過CSS來完成,我認爲由user2505347或@adeneo提出的解決方案實現起來會更簡單,因爲它們將值存儲爲變量,然後「切換」屬性之間的值。 所以..不要生我的氣,但我認爲我會選擇Adeneo作爲正確的答案 – Downloadtaky

+0

是的。我真的試圖證明它是如何完成的,因爲OP似乎不知道如何使用CSS功能。對於那個級別的人來說,對一個不理解的函數進行如此多的調用可能會造成混淆。此外,將變量作爲數組和單個對象進行切換是我不確定他們會得到的概念。其中一個6人,其他6人。 – Dutchie432

0

只讀屬性,保存它的值,刪除屬性,並添加新的屬性與保存的值。

var tmp = $('.row-fluid [class*="span"]').css('margin-left'); 
$('.row-fluid [class*="span"]').css({'margin-left': 0, 'margin-right': tmp}); 
+1

同樣,兩次調用選擇器都會強制jQuery在定位元素 – Dutchie432

相關問題