5

我想要弹出一个警报,每当我单击它时,它就会向我显示表格单元格的背景。我似乎无法找到或弄清楚如何获取背景颜色。

我的表格单元格如下所示:

<td id="s0" onclick="selectCell(event)">0</td>

我的 selectCell 函数如下所示:

function selectCell(e){
  alert(e.target.backgroundColor);  //this gives me 'undefined'
  alert(e.target.bgcolor);          //this gives me 'undefined'
  alert(e.target.bgColor);          //nothing shows up. i don't believe this is a valid property
  //once i know i am properly grabbing the color i will do stuff with it here.
}

我的 CSS 看起来像这样:

#s0 {
  border: 1px solid;
  background-color: yellow;
}

任何帮助将不胜感激!!

4

2 回答 2

5

节点的样式在样式属性中,例如:

e.target.style.backgroundColor;

style但是,这仅适用于使用 in-line属性声明的那些样式。如果使用样式表分配 CSS(应该如此),则需要使用:

window.getComputedStyle(e.target, null).backgroundColor;

不幸的是,Internet Explorer 没有实现该getComputedStyle()选项,而是提供了currentStyle(请注意,我认为它们也不支持e.target,至少在 8 之前的版本中?)。我没有用于测试的 Internet Explorer,但文档建议应该使用它:

var e = window.event ? window.event : e,
    elementNode = e.target !== null ? e.target : e.srcElement;
elementNode.currentStyle.backgroundColor;

参考:

于 2013-06-14T20:42:33.360 回答
-1

您可以通过 Jquery css() 函数轻松完成

jQuery(document).ready(function(){
    $(this).click(function () {
          var color = $(this).css("background-color");
          alert(color);
     });
 });

有关更多详细信息,请查看示例

于 2013-06-14T20:54:35.760 回答