获取应用于元素的css类的背景颜色

时间:2012-12-20 20:39:01

标签: javascript css

说,我有以下CSS类:

.upComing{ background:#ccc; font-weight:bold; }

在我的HTML中我有一个表,其中某些行应用了该类,如下所示:

<table>
  <tr> <td></td> <td></td> </tr>
  <tr> <td></td> <td></td> </tr>
  <tr class='upComing'> <td></td> <td></td> </tr>
  <tr> <td></td> <td></td> </tr>
  <tr class='upComing'> <td></td> <td></td> </tr>
</table>

到目前为止,非常好,但是通过JavaScript,我有一些事件可以听取td点击,我想得到行的颜色(我知道我可以得到行的类,但在这种情况下我需要是能够从课堂上获得颜色。)

我需要这样做,因为表格可以导出到excel文件,如果它们在CSS类上,行颜色不会应用于excel文件,我想在每个td之前应用这种颜色将html发送到excel生成器。

PS:该表是从我们创建的jQuery插件动态生成的,它仍然是一项正在进行的工作,但是当我们对它充满信心时,我们将为公众发布它。

- Update-- 这是关于这个主题的更新,确实有一个纯粹的javascript解决方案,我不得不深入研究jQuery的源代码来检查这个。这是解决方案:

1)指向所需的元素

var tr = $("tr.upComing").first()[0]; 

2)获得元素的COMPUTED STYLE

var css = window.getComputedStyle( tr );

3)获得COMPUTED STYLE

的属性值
var color = css.getPropertyValue( "background-color" );

到目前为止,我只在Mac上测试了FF,Safari,Chromium和Opera,如果有人可以在IE上尝试这一点并给我们反馈意见,那就太棒了。

3 个答案:

答案 0 :(得分:6)

您可以使用jquery CSS方法从元素中获取背景颜色:http://api.jquery.com/css/

var color = $(this).css("background-color");

答案 1 :(得分:2)

以下应该这样做

$('.upComing:eq(0)').css('backgroundColor') 

答案 2 :(得分:1)

如果有帮助,我遇到了同样的问题,并发现,在您的情况下,使用:

a = document.getElementsByClassName('upcoming');
console.log(a.style.backgroundColor);

您不会使用 IF 的工作方式:

  

document.addEventListener(“ DOMContentLoaded”,function(event){}); << / p>

,而是在结束body标记之前引用js文件,尽管该标记被认为是肮脏的。