2011-03-21 184 views
1

我正在寻找循环遍历表的行,并检查看看他们有什么颜色的背景。这是我到目前为止:循环遍历表行

var TheColor = ""; 

$('#MyTable tr').each(function() { 
    TheColor = ""; 
    TheColor = $(this).attr('background-color'); 
    alert(TheColor); 
}); 

当循环展开,我得到的所有是“未定义”,我不明白为什么。但是,当我写TheColor = $(this).html();我得到了预期的产出。

感谢您的建议。

+0

您的“tr”是否真的具有“背景色”属性?您可能应该查看具有该属性的样式属性。 – janhartmann 2011-03-21 18:42:56

回答

5

您需要选择它想:

$(this).css('background-color'); 

既然你正在寻找的属性实际上是一个样式属性(style="background-color: red")。

+0

确实。 'background-color'不是'tr'元素的属性,它是一种样式信息。 @frenchie:更多:http://api.jquery.com/css/#css1 – 2011-03-21 18:46:08

+0

好的,这个工程。但是,它将以rgb(...)的形式返回值。你知道为什么它不以#FDFEGG格式返回数据吗? – frenchie 2011-03-21 18:47:59

+0

参见:http://stackoverflow.com/questions/638948/background-color-hex-to-javascript-variable-jquery – janhartmann 2011-03-21 18:49:11

0
$('#MyTable tr').map(function(item){ return item.css('background-color'); }) 

这将表示从所述表中的背景颜色阵列中的返回背景颜色数组与每个元素。