2012-12-28 44 views
0

我想使用jQuery在HTML文件中用#222(新顏色)替換所有#111顏色(示例顏色)。我想通過單擊來改變網站的主題。我該如何改變jQuery的所有顏色?

初始CSS:

body{ 
    bg-color:#111; 
    color:#111; 
} 
div1{ 
    bg-color:#111; 
    color:#111; 
} 
. 
. 
. 
divn{ 
    bg-color:#111; 
    color:#111; 
} 

click事件之後:

body{ 
    bg-color:#222; 
    color:#222; 
} 
div1{ 
    bg-color:#222; 
    color:#222; 
} 
. 
. 
. 
divn{ 
    bg-color:#222; 
    color:#222; 
} 
+0

你到目前爲止試過的東西? – Hkachhia

回答

6

這裏最好的解決方案是定義具有級聯樣式嵌套元素2 CSS類。

body { color:#111 } 
.theme1 { color: #222; } 
.theme2 { color: #333; } 
.theme2 a { color: #003366; } 
... 

然後你就可以改變你的body元素的CSS類網頁上的所有元素都將繼承新的風格。

// theme1 color 
<body class="theme1"> 
... 
</body> 

// theme2 color 
<body class="theme2"> 
... 
</body> 

jQuery代碼:

$('body').addClass('theme1'); 
+0

我不能這樣做。我想爲Firefox插件 –

+0

這麼做,所以你的FF插件可能有一些父元素。以與我描述的'body'相同的方式更改此父元素的css類 – Samich

+0

好的謝謝@Samich –

1

更改主題與點擊最好的辦法是給一些類,你的身體標記。

在你的CSS

然後:

body{ color: #111;} 
body.secondTheme{color : #222; } 

而且可以綁定jQuery中更改點擊事件

$("#yourButton").click(function() { 
    $("body").toggleClass("secondTheme"); 
}); 
0

正確的方式做,這是分配一個CSS類每個HTML你想改變顏色的元素。

HTML:

<div class="colorChange"> 

CSS:

.colorChange{ color:#111;} 

然後,你將有一個按鈕,觸發一個JavaScript函數,這將改變colorChange類的顏色屬性,我會建議使用jQuery

$(".colorChange").css('color', '#222'); 
0

如果你可以在類之間切換,我認爲會好起來的;如果你不能/不想讓你可以使用.filter功能jQuery的:

$('yourselector').filter(function(){ 
    return $(this).css('color')=='rgb(0, 1, 17)'; 
}).css('color','rgb(0, 2, 34)'); 

這將改變由yourselector選擇顏色rgb(0, 1, 17)上色rgb(0, 2, 34)所有元素。

很明顯,您也可以對其他css屬性進行相同操作。