为什么这行不通?
浏览器 = Safari
<p style="color:blue;">foo</p>
if ($("p").css(("color") === "blue")) {
alert(1);
}
谢谢
这都是关于语法和括号的:
if ($("p").css("color") === "blue") {
alert(1);
}
最初,支架放置错误。您应该获得CSS 属性“color”的.css("color")
值并测试与您的值是否相等,如下所示:
if ($('p').css('color') === 'blue') {
alert('color is blue');
}
但是,某些浏览器会返回rgb
与您的“蓝色”不匹配的值,例如 Chrome 和 Firefox 返回rgb(0, 0, 255)
for $('p').css('color')
,因此您可能还想针对 rgb(甚至是十六进制 - '#0000ff')值进行测试。所有值在逻辑上但在文本上并不相同。
var color = $('p').css('color')
if (color === 'blue' || color === 'rgb(0, 0, 255)' || color === '#0000ff') {
alert('color is blue');
}
更进一步,if 条件可能应该考虑颜色的大小写。'BLUE' 或 '#0000FF' 也是有效的。
我认为应该是:if ($("p").css("color") === "blue"){ alert(1); }
至少在 Firefox 和 Chrome 中
$("p").css("color")
返回 rgb(0,0,255) 所以你的条件无论如何都不会是真的。所以也许这样的解决方法:
if ($("p").attr("style").contains('color:blue;')) {
alert(1);
}