2013-10-25 28 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

示例,以防止它在我的页面上生效,然后再次感谢 –