jquery if语句返回return wong语句

jquery if statement returns return worng statement

本文关键字:语句 wong return 返回 jquery if      更新时间:2023-09-26

我对Jquery有点陌生,遇到了一个问题。。。

在下面的代码中-if语句不应该出现在ELSE语句中,因为$(this).css("color") ==="red") ...

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

我的代码出了什么问题?

TNX,罗伊。

快速使用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");
    }
});

用户Vohuman:指出的文档中的重要部分

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

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