jquery if语句返回返回worng语句

时间:2015-04-08 00:25:48

标签: javascript jquery html

我对Jquery有点新,我遇到了一个问题......

在以下代码中 - if语句不会进入ELSE语句,因为$(this).css("color") ==="red") ...

https://jsfiddle.net/roybarak/7mLsot7k/

我的代码有什么问题?

TNX,罗伊。

1 个答案:

答案 0 :(得分:1)

快速使用console.log($(this).css("color"));告诉您段落的颜色为“rgb(255,0,0)”,至少根据Chrome。如下面引用的文档中所述,不同的浏览器可能会以不同的格式返回颜色。

我修改了if声明,以包含我认为最常见的“红色”版本:

$("p").click(function () {
    if ($(this).css("color").toLowerCase() == "rgb(255, 0, 0)" 
      || $(this).css("color").toLowerCase() == '#ff0000' 
      || $(this).css("color").toLowerCase() == '#f00') {
        alert("this is red");
    } else {
        alert("this is not red");
    }
});

来自the documentation的重要部分,正如用户Vohuman所指出的那样:

  

“请注意,元素的计算样式可能与   在样式表中为该元素指定的值。例如,   计算出的尺寸样式几乎都是像素,但它们可以   在样式表中指定为em,ex,px或%。不同浏览器   可能会返回逻辑上但不是文本的CSS颜色值   相等,例如#FFF,#fffffff和rgb(255,255,255)。“

演示:https://jsfiddle.net/BenjaminRay/7mdxmhoy/