使用Javascript更改CSS中元素的背景颜色[重复]

Posted

技术标签:

【中文标题】使用Javascript更改CSS中元素的背景颜色[重复]【英文标题】:Changing background-color of an element in CSS using Javascript [duplicate] 【发布时间】:2012-05-05 03:43:30 【问题描述】:

基本上,我想通过单击按钮使用 javascript 更改 CSS 中元素的背景颜色。

到目前为止,我的 CSS 看起来像这样:

div.box 
    width:100px;
    height:100px;
    background-color:#FF2400;

它需要动态更改为多种颜色的选择,只需多个按钮即可(每个按钮颜色不同)。

【问题讨论】:

你可以使用 jquery :api.jquery.com/css,或者使用 DOM 来改变样式,例如:document.body.yourelementname.style.backgroundColor = "#FECE03" 您觉得这里有什么帮助吗? 【参考方案1】:

完成:http://jsfiddle.net/iambriansreed/zmtU4/

更新为非 jQuery。

html

<div id="box"></div><div id="box"></div>

<button type="button" onclick="button_click('red');">Red</button>
<button type="button" onclick="button_click('blue');">Blue</button>
<button type="button" onclick="button_click('green');">Green</button>
<button type="button" onclick="button_click('yellow');">Yellow</button>
<button type="button" onclick="button_click('purple');">Purple</button>​

纯 JavaScript

function button_click(color)
    document.getElementById("box").style.backgroundColor=color;
​

【讨论】:

-1 仅适用于 jsfiddle 答案。 -1 用于未标记 jQuery 的问题的仅 jQuery 解决方案。 +1 一个像样的 jsfiddle @Jamiec 纯 JS 解决方案。包括代码。等待您的 +1。 我没有否决你的答案,我解释了为什么你(可能)被否决了。我会赞成这个来平衡它【参考方案2】:

我是否正确理解您不想更改单个元素,而是更改 CSS 规则,所以所有匹配的元素都会受到影响?这是一个如何将示例中的样式动态更改为蓝色的示例:

<html>
<head>
<style>
div.box
    width:100px;
    height:100px;
    background-color:#FF2400;

</style>
<script>
    var sheet = document.styleSheets[0] // Of course if you have more than one sheet you'll have to find it among others somehow
    var rulesList = sheet.cssRules || sheet.rules // some older browsers have it that way
    var rule = rulesList[0] // same for rules - more than one and you'll have to iterate to find what you need
    rule.style.backgroundColor = 'blue' // and voila - both boxes are now blue
</script>
</head>
<body>
<div class="box"></div>
<div class="box"></div>
</body>
</html>

只需将此部分作为“单击”事件处理程序分配给按钮,您就可以设置了。

【讨论】:

【参考方案3】:

执行此操作的 vanilla-javascript 方法是获取对元素的引用并使用 style.backgroundColor 更改颜色:

例如,如果 div 的 id 为 myBox,您将使用

document.getElementById("myBox").style.backgroundColor="#000000"; // change to black

现场示例:http://jsfiddle.net/QWgcp/

顺便说一句,如果您正在执行大量此类操作框架(例如 jQuery),则会在编写代码时为您提供一些帮助。使用 jQuery 的相同功能会更简单一些:

$('#myBox').css('background-color','#000000');

【讨论】:

删除了我的 DV,因为它在你的小提琴中。 OP 要求提供按钮。

以上是关于使用Javascript更改CSS中元素的背景颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章

仅使用 css 更改多个元素的样式

在循环中更改 div 元素的背景颜色交叉淡入淡出

如何使用 JavaScript 函数更改 CSS 值(颜色标签)? [复制]

如何在单击功能中使用动画更改元素的背景颜色? [复制]

使用新颜色的背景的 CSS 颜色部分

使用 Javascript/jQuery 和 CSS 更改 PNG 颜色