<!DOCTYPE html>
<html>
<body>
<h1>My First JavaScript</h1>
<p id="demo">
JavaScript can change the style of an HTML element.
</p>
<script>
function myFunction()
{
x=document.getElementById("demo")
if (x.style.color="#000000")
{
x.style.color="#FF0000";
//alert(x.style.color);
}
else
{
x.style.color="#000000";
//alert(x.style.color);
}
}
</script>
<button type="button" onclick="myFunction()">Click Me!</button>
</body>
</html>
上面的代码第二次不工作点击
我尝试了许多不同的颜色
x.style.color在else块中不接受
否则块不工作
请帮
7条答案
按热度按时间gxwragnw1#
A)在
if
条件语句中使用==
而不是=
B)检查 rgb 颜色符号,而不是十六进制
http://jsfiddle.net/4QUWq/1/
fbcarpbf2#
不同的浏览器可能会为相同的颜色返回不同的值。你最好使用不同的逻辑来切换颜色。我的建议是,使用纯JavaScript:
Live test case。
eqqqjvef3#
当我在Chrome中测试时,颜色是rgb(255,0,0),这就是为什么if条件总是为false。而你在if中赋值而不是比较(= vs ==)看看:Javascript - Converting colors (numbers -> strings) vice versa
x6h2sr284#
当执行比较时,例如在条件中使用
==
而不是=
。=
是赋值运算符。更改比较运算符后,必须使用rgb
而不是颜色代码。ycl3bljg5#
使用rgb颜色表示法代替十六进制
mrwjdhj36#
使用
style.backgroundColor
。它返回颜色或RGB格式的名称,因此您必须转换它。
t5zmwmid7#