我对Jquery有点新,我遇到了一个问题......
在以下代码中 - if语句不会进入ELSE语句,因为$(this).css("color") ==="red") ...
https://jsfiddle.net/roybarak/7mLsot7k/
我的代码有什么问题?
TNX,罗伊。
答案 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)。“