7

说,我有以下 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 文件,我想在发送 html 之前将此颜色应用于每个 td到excel生成器。

PS:该表是从我们创建的 jQuery 插件动态生成的,它仍在进行中,但是当我们对它有足够的信心时,我们会向公众发布它。

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

1)指向所需的元素

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

2) 获取元素的 COMPUTED STYLE

var css = window.getComputedStyle( tr );

3) 获取 COMPUTED STYLE 的 PROPERTY VALUE

var color = css.getPropertyValue( "background-color" );

到目前为止,我只在 Mac 上的 FF、Safari、Chromium 和 Opera 中进行了测试,如果有人可以在 IE 上尝试这个并给我们反馈,那就太好了。

4

3 回答 3

7

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

var color = $(this).css("background-color");
于 2012-12-20T20:46:21.270 回答
2

以下应该这样做

$('.upComing:eq(0)').css('backgroundColor') 
于 2012-12-20T20:46:10.353 回答
1

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

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

如果您不使用,则可以使用

document.addEventListener("DOMContentLoaded", function(event) {});<

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

于 2018-11-16T08:44:31.060 回答