为什么javascript在if语句中不能使用.style.color

时间:2014-02-03 18:42:17

标签: javascript html if-statement colors styles

在javascript中,如果使用元素的颜色作为对象,则不能使用if statments,例如,如果statment返回false则跟随

    document.getElementById('t').style.color = "rgb(0,0,255)"

    alert(document.getElementById('t').style.color)

    if(document.getElementById('t').style.color == rgb(0,0,255))
    {
    alert("if")
    }

并且第3行中的警报返回rgb(0,0,255),这意味着浏览器确实使用rgb作为颜色。但警告(“如果”)永远不会起作用

有人可以帮助我找到一种方法来让这个工作或者找到另一种方法来标记一个按钮(我需要这样做一个按钮,而不是单选按钮),它不会改变它的类,例如改变一些无关紧要的东西javascript将能够检查不是颜色

提前谢谢! :)

编辑 - 感谢答案,这有帮助,我感觉自己像个白痴:我刚刚选择了一个名字最少的那个

3 个答案:

答案 0 :(得分:1)

"rgb(0,0,255)" != rgb(0,0,255)

在if语句中添加引号。现在你要检查字符串“rgb(0,0,255)”是否等于函数rgb的结果,其中三个整数(0,0,255)作为参数传递。

颜色值被视为字符串。这两者也不同:

"rgb(0,0,255)" != "rgb(0, 0, 255)"

...因为值中的空格。您可能希望首先将它们转换为十六进制并在那里进行比较,因为您遇到这样的问题的可能性较小。

答案 1 :(得分:1)

您可以在警告窗口中看到另外两个空格:

"rgb(0, 0, 255)"

不要忘记逗号。

您也可以使用:“blue”或“#0000ff”。

答案 2 :(得分:0)

您在这里遇到两个问题:

  1. 正如前面提到过的两次,你需要检查一个字符串值,而不是在这种情况下返回一个不存在的函数调用(这是rgb(0,0,255)是什么...函数rgb未在您的代码中定义。)
  2. " set" style.color的功能将接受比" get"更广泛的输入格式。功能将输出。如果您输入" red",style.color也会输出" red"。但是,如果您输入" rgb(0,0,255)",style.color将实际输出" rgb(0,0,255)" (注意逗号后面的空格)。
  3. 可以以这种方式检查值,但是,如果你这样做,你需要知道要检查的确切内容,以便它能够正常工作。