获取#000格式的背景色而不是RGB格式

时间:2013-03-30 08:48:30

标签: jquery rgb

使用此代码,我可以获得表格中任何TD的RGB颜色:

alert($(this).css('background-color'));

结果是:

  

rgb(0,255,0)

是否可以使用jquery获取#000格式或让我使用函数转换#000格式的rgb?

提前感谢您的帮助

2 个答案:

答案 0 :(得分:12)

尝试

var color = '';
$('div').click(function() {
   var hexcolor = $(this).css('backgroundColor');
   hexc(hexcolor);
   alert(color);
});

function hexc(colorval) {
    var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    delete(parts[0]);
    for (var i = 1; i <= 3; ++i) {
        parts[i] = parseInt(parts[i]).toString(16);
        if (parts[i].length == 1) parts[i] = '0' + parts[i];
    }
    color = '#' + parts.join('');

    return color;
}

答案 1 :(得分:0)

这是我之前写的一个函数,它为我完成了工作,并且没有循环。

function rgbToHex(total) {
    var total = total.toString().split(',');
    var r = total[0].substring(4);
    var g = total[1].substring(1);
    var b = total[2].substring(1,total[2].length-1);
    return ("#"+checkNumber((r*1).toString(16))+checkNumber((g*1).toString(16))+checkNumber((b*1).toString(16))).toUpperCase();
}
function checkNumber(i){
    i = i.toString();
    if (i.length == 1) return '0'+i;
    else return i;
}

JSFIDDLE