如果背景为红色,则jQuery无法识别错误,看起来很容易但很固执
jquery if background is red doesn't recognize error, looks easy but stubborn
http://jsfiddle.net/TcSQ8/31/
为什么这个小提琴不起作用? 有趣..
$(document).ready(function(){
$(".box").click(function(){
if ($(".box").css("background-color") == "red")
{
$(".box").html("Success!");
}
});
});
为什么这个小提琴不起作用?
原因很多。
1) CSS 属性background
不background-color
2)background-color
不是red
而是rgb(255, 0, 0)
工作代码:
$(document).ready(function(){
$(".box").click(function(){
if ($(".box").css("background-color") == "rgb(255, 0, 0)")
{
$(".box").html("Success!");
}
});
});
工作 Jsfiddle 链接
旁注:使用 console.log()
进行调试比alert()
方便得多
旁注(2):您可以调试if语句。在您的情况下,这样的测试可以解决问题。
console.log($(".box").css("background") == "red")
如果您只想比较颜色,请获取background-color
。之后,在您的条件下使用 rgb 代码,它可以工作。
$(document).ready(function(){
$(".box").click(function(){
if ($(".box").css("background-color") == "rgb(255, 0, 0)")
{
$(".box").append("Success!");
}
});
});
$(document).ready(function(){
$(".box").click(function(){
alert($(".box").css("background-color"));
if ($(".box").css("background-color") == "rgb(255, 0, 0)")
{
$(".box").html("Success!");
}
});
});
因为:
- 您正在将背景(而不是背景颜色)与字符串(红色)进行比较。
- css('background') 和 css('backgroundColor') 都会返回元素当前背景颜色的计算 RGB 值。您正在将其与字符串进行比较。
相关文章:
- Twitter Bootstrap 2.1.0子菜单在Responsive上看起来很混乱
- 如何使许多jQuery ajax调用看起来很漂亮
- 为什么 Jquery 移动显示移动友好在桌面浏览器上看起来很友好
- 删除/隐藏 javascript 中的选择选项而不会使其看起来很尴尬(需要延迟 select 元素的本机 onclick
- 如果背景为红色,则jQuery无法识别错误,看起来很容易但很固执
- 请求使用arc()绘制的AnimationFrame,看起来很糟糕,如何正确完成
- 自定义选择和输入标签,IE版本看起来很糟糕
- 如何用一个合适的双引号替换这个看起来很奇怪的引号符号:“;
- HTML、PHP、JavaScript——如何为数据库中的每个单独记录制作一个按钮?看起来很简单,但事实并非如此;不起作
- MSIE让我的slidejs代码看起来很糟糕
- JavaScript调用看起来很有趣
- WebVR Boilerplate问题-管理器没有在VRMode中渲染,相机看起来很直,全屏只渲染一半的窗口
- 在不同的网页之间分发表单元素,看起来很简单,但无法修复
- SVG图标看起来很模糊-谷歌地图
- 为什么这个网络工具包的动画看起来很粗略
- ECMA 6的兼容性看起来很糟糕.我错过了什么
- 这看起来很简单,但是我在jquery API中找不到所需的函数
- JQuery's在画布上点击事件-在iPad上看起来很丑
- html页面在设备上看起来很小,当点击刷新时它会回到正常位置
- 看起来很流畅的向上计数方式