jQuery全局颜色替换

时间:2013-02-13 09:57:23

标签: jquery colors replace

我有一个包含多个表的大文件,我可以编辑源代码。我有几行像这样:

<tr bgcolor=#cccccc ><td>some data </td></tr>
<tr bgcolor=#ffffff ><td>some data </td></tr>
<tr bgcolor=#080808 ><td>some data </td></tr>
<tr bgcolor=#cccccc ><td>some data </td></tr>
<tr bgcolor=#ffffff ><td>some data </td></tr>
<tr bgcolor=#cccccc ><td>some data </td></tr>
<tr bgcolor=#cccccc ><td>some data </td></tr>

我需要一个jquery语句来替换颜色。所以我可能想说#cccccc的颜色改为#09c(蓝色),而#gffff的bg颜色改为#080808(黑色)。

我认为它会是这样的但是无法让它工作

$('*').filter(function() {
var match = 'rgb(182, 211, 252)';
return ( $(this).css('background-color') == match );
}).css('background-color', '#e7e4d3'); 

如果我使用RGB颜色,但是我需要它使用十六进制颜色,这是有效的。

非常感谢任何帮助

谢谢巴兹

3 个答案:

答案 0 :(得分:0)

您需要转换rgbtohex

<强>样品

function rgb2hex(rgb)
{
    rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    return "#" +
    ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
    ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
    ("0" + parseInt(rgb[3],10).toString(16)).slice(-2);
}

$(function()
{
    $('tr').each(function()
    {
        var mainTr = $(this);
        var trColor = rgb2hex($(this).css('background-color'));

        //check for hex code and replace it accordingly...
    }); 
});

答案 1 :(得分:0)

如果我理解你,你会想要像http://codepen.io/anon/pen/sGLAc

这样的东西
$('tr').each(function(){

    var row = $(this),
        bg = row.attr('bgcolor');

    switch(bg.toLowerCase())
    {
      case '#ffffff':
        row.attr('bgcolor', 'red');
      break;

      default:
        console.log(bg);
      break;
    }

  });

答案 2 :(得分:0)

可能这对你有帮助。

$("*").css("color", "red");
$("table tr").each(function(){
    //alert($(this).attr("bgcolor"));
    if($(this).attr("bgcolor") == '#cccccc')
    {
        $(this).attr("bgcolor","#09c");
    }
    if($(this).attr("bgcolor") == '#ffffff')
    {
        $(this).attr("bgcolor","#080808");
    }
});