Javascript 如何获得分配给html表的CSS属性?

Javascript 如何获得分配给html表的CSS属性?,javascript,html,css,Javascript,Html,Css,我有一个HTML表,其中每行都分配了一些样式类(通过服务器端代码动态分配) HTML看起来像: <tr id= "2977" class ="x y z a b c" > 但我无法读取任何样式属性;上行返回null。如果我检查Chrome中的row元素,它会显示该行的十六进制颜色 如何读取元素的当前背景色?是否可以使用以下命令读取样式属性 document.getElementById("2977").getAttribute("style"); 另外,如果您能够使用jQuer

我有一个HTML表,其中每行都分配了一些样式类(通过服务器端代码动态分配)

HTML看起来像:

<tr id= "2977"  class ="x y z a b c" >
但我无法读取任何样式属性;上行返回
null
。如果我检查Chrome中的row元素,它会显示该行的十六进制颜色


如何读取元素的当前背景色?

是否可以使用以下命令读取样式属性

document.getElementById("2977").getAttribute("style");
另外,如果您能够使用jQuery,请尝试

$('#2977').css('background-color');

代码看起来确实适合我。也许有更多的细节,我可以帮助你更好。

这很有效

HTML

<table>
    <tr style="background:red;" id= "2977"  class ="x y z a b c" >
        <td>RED</td>
    </tr>
</table>

document.getElementById("2977").className += " blue";
document.getElementById("2977").className += " red";

function getStyle(el, cssprop){
    //IE
    if (el.currentStyle)
        return el.currentStyle[cssprop]
    //Firefox
    else if (document.defaultView && document.defaultView.getComputedStyle)
        return document.defaultView.getComputedStyle(el, "")[cssprop]
    else //try and get inline style
        return el.style[cssprop]
}

var el = document.getElementById("2977");
alert(getStyle(el, "backgroundColor"));
alert(getStyle(el, "color"));
​ 小提琴

页面加载后是否执行Javascript

尝试以下测试:

function init() {
    document.getElementById("2977").style.backgroundColor = "black";
    alert(document.getElementById("2977").style.backgroundColor);
}
window.onload = init; 

如果您希望不使用任何javascript库,可以执行以下操作:

row = document.getElementById("2977")
var bgStyle = window.getComputedStyle(row).getPropertyValue("background-color");

我只是快速查找了一下,我不确定是否存在任何陷阱。

您能告诉我您需要什么详细信息吗?声明表的html代码。与javascript代码中的错误相比,这里更有可能出现错误..getAttribute(“style”)给出了null这正是我正在做的。唯一的区别是颜色由外部样式表文件设置(而不是手动指定)。我正在读你写的第二行,是的。但在我的情况下,我没有一个固定的颜色分配。某些样式表类正在指定颜色。我不知道样式表是如何工作的,所以你应该更改类而不是颜色属性。你在用jquery吗?不,我在用javascript。您能提供一些关于如何更改类的详细信息吗?document.getElementById(“2977”).className+=“蓝色”;​ 你应该发布更多的html。因为你发布的js是有效的。tr是否在表中?它为每一行提供相同的rgb颜色。但是对于每一行,我有不同的背景颜色,你是如何循环通过你的TRs的?如何检查从getComputedStyle接收到的值?在一个循环中,我根据类将包含的数据将类分配给TRs。我正在通过简单警报检查从getComputedStyle接收到的值。您可能正在了解javascript如何处理作用域-与其他语言不同,您可能需要执行更多的编码才能按预期工作。你的环看起来像什么?
function init() {
    document.getElementById("2977").style.backgroundColor = "black";
    alert(document.getElementById("2977").style.backgroundColor);
}
window.onload = init; 
row = document.getElementById("2977")
var bgStyle = window.getComputedStyle(row).getPropertyValue("background-color");