【问题标题】:jquery css color value returns RGB?jquery css颜色值返回RGB?
【发布时间】:2011-03-04 04:38:02
【问题描述】:

在我的 CSS 文件中:

a, a:link, a:visited { color:#4188FB; }
a:active, a:focus, a:hover { color:#FFCC00; }

我试过了:

var link_col = $("a:link").css("color");
alert(link_col); // returns rgb(65, 136, 251)

如何获取十六进制代码?

*** 编辑:在这里找到答案:
Background-color hex to JavaScript variable

不好意思,发帖前可以搜索一下。

【问题讨论】:

标签: jquery css hex rgb


【解决方案1】:

一些功能调整

$.fn.getHexBackgroundColor = function() {
    var rgb = $(this).css('background-color');
    if (!rgb) {
        return '#FFFFFF'; //default color
    }
    var hex_rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 
    function hex(x) {return ("0" + parseInt(x).toString(16)).slice(-2);}
    if (hex_rgb) {
        return "#" + hex(hex_rgb[1]) + hex(hex_rgb[2]) + hex(hex_rgb[3]);
    } else {
        return rgb; //ie8 returns background-color in hex format then it will make                 compatible, you can improve it checking if format is in hexadecimal
    }
}

【讨论】:

    【解决方案2】:

    来吧,这将允许您使用 $(selector).getHexBackgroundColor() 轻松返回十六进制值:

    $.fn.getHexBackgroundColor = function() {
        var rgb = $(this).css('background-color');
        rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
        function hex(x) {return ("0" + parseInt(x).toString(16)).slice(-2);}
        return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
    }
    

    【讨论】:

      【解决方案3】:

      这是我的看法。简洁明了。

      (function($) {
        $.fn.getHexBackgroundColor = function() {
          return (function(rgb) {
            return '#' + (!rgb
              ? 'FFFFFF'
              : rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/)
                   .slice(1)
                   .map(x => ('0' + parseInt(x).toString(16)).slice(-2))
                   .join('')
                   .toUpperCase());
          })($(this).css('background-color'));
        }
      })(jQuery);
      
      $(function() {
        $('#color-rgb').text($('.foo').css('background-color'));
        $('#color-hex').text($('.foo').getHexBackgroundColor());
      });
      .foo {
        background: #F74;
        width: 100px;
        height: 100px;
      }
      
      label { font-weight: bold; }
      label:after { content: ': '; }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <div class="foo"></div>
      <label>RGB</label><span id="color-rgb">UNDEF</span><br />
      <label>HEX</label><span id="color-hex">UNDEF</span>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 2013-04-10
        • 2012-04-03
        • 1970-01-01
        • 2014-07-30
        • 2015-11-22
        相关资源
        最近更新 更多