为什么可以';t javascript在if语句中使用.style.color

为什么可以';t javascript在if语句中使用.style.color,javascript,html,if-statement,colors,styles,Javascript,Html,If Statement,Colors,Styles,在javascript中,不能使用if语句将元素的颜色作为contention,例如下面的if语句总是返回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)) {

在javascript中,不能使用if语句将元素的颜色作为contention,例如下面的if语句总是返回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,0255),这意味着浏览器实际上使用rgb作为颜色。但警惕(“如果”)永远不会起作用

有人能帮我找到一种方法让它工作吗,或者找到一种替代方法来标记一个按钮(我需要为一个按钮而不是单选按钮做这个),它不改变它的类,例如改变一些javascript能够检查的不重要的东西,那不是颜色

提前谢谢你! :)

编辑-谢谢你的回答,这很有帮助,我觉得自己像个白痴:我刚选了一个他们的名字点最少的

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

颜色中的值被视为字符串。这两个方面也是不同的:

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

…因为值中有空格。您可能希望先将它们转换为十六进制,然后在那里进行比较,因为您很少会遇到这样的问题。

您在这里面临两个问题:

  • 正如上面两次提到的,您需要检查字符串值,而不是不存在的函数调用的返回(在这种情况下,
    rgb(0,0255)
    是什么?
    rgb
    函数未在代码中定义)
  • style.color
    的“设置”功能将接受比“获取”功能输出更广泛的输入格式。如果输入“红色”,则
    style.color
    也将输出“红色”。但是,如果输入“rgb(0,0255)”,
    style.color
    将实际输出“rgb(0,0255)”(注意逗号后的空格)

  • 您可以通过这种方式检查该值,但是,如果您这样做,您需要确切地知道要检查什么才能使其工作。

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

    "rgb(0, 0, 255)"
    
    别忘了逗号


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

    您没有
    rgb
    功能。您需要一个字符串文字。这是不正确的;至少是铬的。浏览器将返回设置颜色的字符串(加上一些规范化,如RGB值之间的空格)。它不会检查相同的颜色。“rgb(0,0255”!=“蓝色”)是的,我发现你不能使用蓝色或十六进制颜色,因为你必须始终如一地使用它:“蓝色”=“蓝色”