切换按钮的背景颜色
Toggling the background color of buttons
我有这部分代码,它旨在每次单击输入按钮时更改其颜色。
function colorchange(id)
{
if(document.getElementById(id).style.background == '#FFFFFF')
{
document.getElementById(id).style.background = '#000000';
}
else
{
document.getElementById(id).style.background = '#FFFFFF';
}
}
<input type="button" id="k777" onclick="colorchange('k777');" style="background:#000000;"/>
然而,这并不能正常工作。当我第一次点击按钮时,它确实会将按钮的颜色从#000000更改为#FFFFFF,但当我再次点击时,它不会变回#000000。它还是白色的。我该如何解决这个问题?
这是因为element.style.background
以rgb
格式返回值。更改条件if
语句以检查适当的rgb
值,它应该可以正常工作。
把这行写成:
if(document.getElementById(id).style.background !== 'rgb(0, 0, 0)')
演示,修复并清理代码的
尝试通过css类解决它
这里的HTML:
<style type="text/css">
input.bg_1{
background-color: #000";
}
input.bg_2{
background-color: #fff;
}
</style>
<input type="button" id="input_777" onclick="colorchange('input_777');" class="bg_1" value="hello world" />
JS:
function colorchange(id){
var item = document.getElementById(id);
if(item.getAttribute('className') == 'bg_1'){
item.setAttribute('className', 'bg_2');
} else {
item.setAttribute('className', 'bg_1');
}
}
在某些浏览器中,属性可能是class
。你必须检查一下。顺便说一句,代码未经测试
function colorchange(id)
{
var background = document.getElementById(id).style.background;
if(background === "rgb(255,255,255)")
{
document.getElementById(id).style.background = "rgb(0,0,0)";
}
else
{
document.getElementById(id).style.background = "rgb(255,255,255)";
}
}
因为它的RGB值,
它在这里工作http://jsfiddle.net/nE8SW/
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用jquery更改html中的背景颜色
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- JS幻灯片与CSS背景颜色变化
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- Javascript通过列表项的函数和css来更改背景颜色
- Javascript没有从数组中选择背景颜色
- 使用圆中的数组更改背景颜色项目
- 如何用jquery动画改变背景颜色,就像一个过渡
- 使用jquery交换并保存背景颜色
- j查询如何设置/取消设置下拉菜单的背景颜色
- 使用angularjs根据时间更改背景颜色
- 设置Dojo量表的背景颜色
- javascript样式的背景颜色在设置时闪烁.ASP.NET
- 使用javascript更改任意文本的背景颜色
- 在用Javascript更改背景颜色后:hover don'不要改变颜色
- 图像内部的透明背景颜色不受影响
- jQuery mobile-动态更改ui页面背景颜色
- 切换按钮的背景颜色
- JavaScript更改类的背景颜色