想要在 JQuery 中测试背景颜色的名称

Posted

技术标签:

【中文标题】想要在 JQuery 中测试背景颜色的名称【英文标题】:Want to test the Name of a background color in JQuery 【发布时间】:2011-07-27 09:29:57 【问题描述】:

我没有找到我能理解的答案。我正在尝试测试被单击的 div 的背景颜色是否为“红色”...而不是红色(在警报中)我得到 rgb(125,0,0) .... 尝试使用单报价,它没有工作...请帮助?

 alert($('#' + id).css('background-color'));

 if ($('#' + id).css('background-color') == 'red') 
                 $('#' + id).hide('slow');
 

【问题讨论】:

【参考方案1】:

在 Chrome 中测试它,我在这些逗号之间得到了空格。如果是比较字符串,包括空格在内的每个字符都必须相同,所以改为:

if ($('#' + id).css('background-color') == 'rgb(255, 0, 0)') 

【讨论】:

【参考方案2】:

如果您使用 CSS 类为 div 赋予背景颜色,然后简单地测试该类的存在,那就容易多了。无论如何,颜色的语义不如类。

 <style>
    .alert  background-color: Red; 
 </style>

 <div id="warning" class="alert">
 </div>

 <script type="text/javascript">
    $(function() 
       $('div').click( function() 
           if ($(this).hasClass('alert')) 
                $(this).hide('slow');
           
       );
    );
 </script>

【讨论】:

啊,粗鲁,这样做更有意义——我将在我的红色 div 中添加一个类...谢谢!【参考方案3】:

This 可能有助于避免任何可能的跨浏览器差异。

【讨论】:

以上是关于想要在 JQuery 中测试背景颜色的名称的主要内容,如果未能解决你的问题,请参考以下文章

JQuery Tabs - 在输入条目上更改选项卡的背景颜色

悬停时背景颜色变化不起作用(jquery)

更改 jquery mobile listview 背景颜色

使用多个 jQuery-minicolors 色板更改多个 div 容器的背景颜色

jquery如何使css设定好背景颜色的div去掉背景颜色?

jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色