0

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

<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(蓝色),而任何bg 颜色为#ffffff 的内容更改为#080808)(黑色)。

我想它会是这样的,但不能让它工作

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

如果我使用 RGB 颜色,这可以工作,但我需要它来处理十六进制颜色。

任何帮助将不胜感激

谢谢巴兹

4

3 回答 3

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...
    }); 
});
于 2013-02-13T10:02:11.300 回答
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;
    }

  });
于 2013-02-13T10:06:44.790 回答
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");
    }
});
于 2013-02-13T10:18:09.750 回答