如何用jquery更改所有颜色?

时间:2012-12-28 10:11:26

标签: javascript jquery

我想使用jQuery在html文件中用#111(新颜色)替换所有#222颜色(示例颜色)。我想通过单击来改变网站的主题。

初始css:

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

点击活动后:

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

4 个答案:

答案 0 :(得分: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');

答案 1 :(得分:1)

通过一次点击更改主题的最佳方法是为您的身体标签提供一些课程。

然后在你的css中:

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

你可以在jquery中为click事件绑定更改

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

答案 2 :(得分:0)

执行此操作的正确方法是为要更改颜色的每个html元素指定一个css类。

HTML:

<div class="colorChange">

CSS:

.colorChange{ color:#111;}

然后你会有一个触发javascript函数的按钮,它会改变colorChange类的颜色属性,我建议使用jQuery

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

答案 3 :(得分:0)

如果你可以在课程之间切换,我认为它会更好;如果您不能/不希望您可以使用jQuery中的.filter函数:

$('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属性做同样的事情。