2013-02-13 96 views
0

我有一個大的文件,其中有幾個表格,我可以編輯源代碼。我有這樣的幾行:jQuery全局顏色替換

<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(藍色)的顏色和#ffffff的bg顏色改爲#080808)(黑色)的顏色說出任何內容。

我quess它會是這樣的,但不能讓它的工作

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

這個作品,如果我用的是RGB顏色,但我需要它與十六進制顏色搭配。

任何幫助,將不勝感激

感謝巴茲

回答

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; 
    } 

    }); 
+0

完美chirstian非常讚賞 – 2013-02-13 15:33:45

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... 
    }); 
});
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"); 
    } 
});