Jquery比较背景颜色

标签 jquery

我正在使用:

var element = $(this).parents("tr:first");

if (element.css("background-color")=="black)")
    element.animate({ backgroundColor: "white" }, 1000);
else
    element.animate({ backgroundColor: "black" }, 1000);

要更改背景颜色,但比较似乎失败,我也尝试过:

if (element.css("background-color")==rgb(0,0,0))

但是 if 条件似乎每次都返回 false?

最佳答案

这取决于您的浏览器及其支持的内容。

某些浏览器将返回 rgb(0,0,0),但大多数较新的浏览器支持 rgba 并返回 rgba(0,0,0,0)。其他浏览器可能会返回完全不同的内容,谁知道会是什么?

试试这个 Fiddle看看它是否有效,它在最新的 Chrome 中适用于我,但可能不适用于所有浏览器。

var element = $(this).parents("tr:first");

if (element.css("background-color")==="rgba(0, 0, 0, 0)") {
    element.animate({ backgroundColor: "black" }, 1000);
}else{
    element.animate({ backgroundColor: "white" }, 1000);
}

此外,您的 if/else 语句有缺陷,缺少大括号!

由于检查从浏览器返回的颜色不太可靠,因此您应该考虑使用标志

var element = $(this).parents("tr:first");
var flag    = element.data("flag");

if ( flag ) {
    element.animate({ backgroundColor: "black" }, 1000);
}else {
    element.animate({ backgroundColor: "white" }, 1000);
}

element.data("flag", !flag);

最后,如果没有插件或 jQuery UI,jQuery 不支持动画颜色。

关于Jquery比较背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11548006/

相关文章:

javascript - 循环加载 jquery

jquery - ".scrollBottom()"不起作用

javascript - 阻止 js 函数在已经执行时执行

javascript - JQuery DataTable 和 JsonDate,非常基础

javascript - 如何通过 clipboard.js 复制 href 属性

javascript - 如何在 Asp.Net MVC 中检测互联网连接以使用 Google map ?

javascript - Bootstrap 3 Modal 不会显示模态标题或输入标签

javascript - Div 显示至少 1 秒,或直到主要内容加载 - 以先到者为准

javascript - JQuery 电子邮件验证不起作用

jquery - 在多个 div 上切换 css 类