2013-10-25 86 views
0

我需要JavaScript來更改表和TR標籤的背景色(HTML生成的服務器端,我無法控制)不能.replace樣式屬性?適用於SRC,高度等

這裏是改變

<table cellspacing="0" cellpadding="3" rules="all" id="cphMain_gvStore" style="background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;border-collapse:collapse;"> 
     <tr style="color:White;background-color:#A55129;font-weight:bold;"> 
的HTML

這裏是我的腳本(基於工作之一更改圖片src)

var tablec2 = document.getElementsByTagName('tr'); 

    for (var i=0; i<tablec2.length; i++) { 
    var tr = tablec2[i]; 

    tr.style = tr.style.replace(/A55129$/, '888'); 
    tr.style = tr.style.replace(/FFF7E7$/, 'F9F9F9'); 
} 

任何想法,爲什麼這種類型的腳本工程,爲改變高度,寬度和SRC或圖像標籤,但拒絕改變風格標籤這張桌子?

我也用這個腳本來改變TD高度,但由於某種原因,風格不想合作。

這是一個與圖像工作的腳本:

var images = document.getElementsByTagName('img'); 

for (var i=0; i<images.length; i++) { 
var img = images[i]; 

img.src = img.src.replace(/0-1-1$/, '0-0-1'); 

    if (img.width == '240' && img.height == '240') { 
    img.width = '320'; 
    img.height = '320'; 
    } 
} 
+0

你允許使用jQuery的? –

+3

你調試過'tr.style'嗎? 'style'是一個包含所有元素樣式的特殊對象,而不是屬性內容 - 如果您只想編輯樣式屬性,則應該使用'tr.getAttribute('style')' – SmokeyPHP

+0

樣式不是CssStyleDeclaration對象的字符串。 –

回答

2

的樣式屬性不直接映射到樣式屬性,它不是一個字符串。

改爲編輯.style.backgroundColor.style.color

0

試試這個,

var tablec2 = document.getElementsByTagName('tr'); 
for (var i=0; i<tablec2.length; i++) { 
var tr = tablec2[i];     if(colorToHex(tr.style.backgroundColor).toLowerCase() == "#A55129".toLowerCase()){ 
    tr.style.backgroundColor = "#888"; 
} 
} 

function colorToHex(color) { 
    if (color.substr(0, 1) === '#') { 
     return color; 
    } 
    var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); 

    var red = parseInt(digits[2]); 
    var green = parseInt(digits[3]); 
    var blue = parseInt(digits[4]); 

    var rgb = blue | (green << 8) | (red << 16); 
    return digits[1] + '#' + rgb.toString(16); 
}; 
+0

沒有用,但謝謝。 arrg爲什麼這麼固執! –

+0

我與jsfiddle一起工作。點擊查看http://jsfiddle.net/qAV5g/ –

+0

示例,以防止它在我的頁面上生效,然後再次感謝 –

相關問題