如何比较jQuery/JavaScript中的两个颜色值?

new*_*bie 20 javascript css jquery

我用jQuery获得了颜色值.css('color'),然后我知道它应该是颜色.

如何比较从jQuery获得的颜色值,例如黑色值?

Mik*_*ike 21

这是一种适用于所有使用JQuery的浏览器的方法:

  1. <div id="dummy" style="display:none;"></div>在HTML页面上创建一个隐藏的div .(使用JQuery动态创建虚拟元素不适用于命名颜色)
  2. 将虚拟元素的颜色设置为预期颜色,即 $('#dummy').css('color','black');
  3. 将虚拟元素的颜色与要检查的元素进行比较

if($('#element').css('color') === $('#dummy').css('color')) {
  //do something
}
Run Code Online (Sandbox Code Playgroud)


And*_*lam 15

关于什么...

if ($('#element').css('color') == 'rgb(0, 0, 0)')
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

将0,0,0替换为要比较的颜色值的红色,绿色和蓝色值.

.css()jQuery API

  • 请注意,这并不总是适用于Internet Explorer,因为它返回原始值.所以它可以是从3或6位十六进制值到命名颜色的任何东西. (3认同)
  • 是不是有更多的实现独立解决方案呢?即使RGB值之间的空间稍有变化也会使这种平等陷入混乱,更不用说十六进制表示甚至是简单的单词表示,如白色或黑色.有人有想法吗? (3认同)

小智 5

我有一个类似的问题,我不得不切换一个元素的bgnd颜色.我这样解决了:

var color_one = "#FFA500";
var color_two = "#FFFF00";

function toggle_color(elem){
    var bgcolor = elem.css("background-color");
    elem.css("background-color", color_one);     // try new color
    if(bgcolor == elem.css("background-color"))  // check if color changed
        elem.css("background-color", color_two); // if here means our color was color_one
}
Run Code Online (Sandbox Code Playgroud)