说,我有以下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上尝试这一点并给我们反馈意见,那就太棒了。
答案 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文件,尽管该标记被认为是肮脏的。