【问题标题】:Why can't javascript use .style.color in if statments为什么javascript不能在if语句中使用.style.color
【发布时间】:2014-02-27 09:32:56
【问题描述】:

在 javascript 中,你不能使用 if 语句使用元素的颜色作为条件,例如后面的​​ 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,0,255),这意味着浏览器实际上确实使用 rgb 作为颜色。但是 alert("if") 永远不会起作用

有人可以帮我解决这个问题,或者找到另一种方法来标记不改变其类的按钮(我需要为按钮而不是单选按钮执行此操作),例如更改一些无关紧要的事情javascript 将能够检查这不是颜色

提前感谢您! :)

编辑 - 感谢您的回答,这有帮助,我觉得自己有点像个白痴:S 我刚刚选择了他们名字中点数最少的那个

【问题讨论】:

  • 您没有rgb 函数。你需要一个字符串文字。

标签: javascript html if-statement colors styles


【解决方案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)"

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

【讨论】:

    【解决方案2】:

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

    "rgb(0, 0, 255)"
    

    别忘了逗号。

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

    【讨论】:

    • 这是不正确的;至少在 Chrome 中。浏览器将返回设置颜色的字符串(加上一些规范化,如 RGB 值之间的空格)。它不会检查等效颜色。 "rgb(0,0,255" != "蓝色")
    • 是的,我发现你不能使用蓝色或十六进制颜色
    • 因为你必须始终如一地使用它:"blue" == "blue"
    【解决方案3】:

    您在这里面临两个问题:

    1. 正如上面两次提到的,你需要检查一个字符串值,而不是一个不存在的函数调用的返回(这就是rgb(0,0,255),在这种情况下......函数@ 987654322@ 未在您的代码中定义)。
    2. style.color 的“set”功能将接受比“get”功能输出的更广泛的输入格式。如果输入“red”,style.color 也会输出“red”。但是,如果您输入“rgb(0,0,255)”,style.color 将实际输出“rgb(0,0,255)”(注意逗号后面的空格)。

    可以以这种方式检查该值,但是,如果您这样做,您需要确切地知道要检查的内容,以便它工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2020-05-06
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多