【发布时间】:2012-12-08 10:35:23
【问题描述】:
说,我有以下 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 插件动态生成的,它仍在进行中,但当我们对它有足够的信心时,我们会向公众发布它。
--更新-- 这是关于这个主题的更新,确实有一个纯 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 上尝试这个并给我们反馈,那就太好了。
【问题讨论】:
-
基本上是 stackoverflow.com/questions/3319/… 的副本。您可以使用相同的语法来获取值。
-
谢谢亚伦,我认为这不是一个真正的重复,因为这个问题是关于设置背景(内联),这个问题是关于从 css 类中将背景应用于元素。无论如何,谢谢你的呼喊。
-
这里有一个关于这个话题的更新,确实有一个纯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 上尝试这个并给我们反馈,那将是很棒的。
标签: javascript css