用数据样式表单元格



我有一个带有一些数据值的表。我想添加样式来更改具有值的单元格,使其具有背景颜色,并为第一个单元格添加边框颜色。

我可以只使用CSS还是我需要添加一些jQuery代码?我一个都可以,两个都可以。

在jquery中,你可以这样做(这会为所有有值的单元格添加背景色,并为第一个有值的单元格添加边框,但我可以根据你的需要修改它)编辑-更新以考虑评论

$('table tr').each(function() {
    var firstDone = false;
    $(this).children('td').each(function() {
        if ($(this).text() != '') {
            if (!firstDone) {
                $(this).css('border', '2px solid yellow');
                firstDone = true;
            }
            $(this).css('background-color', 'green');
        }
    });
});

此处提琴http://jsfiddle.net/rkrHx/11/

在单元格中添加/删除CSS类通常比直接使用javascript设置样式要好。试试这个:

$("td").each(function(){
  if ($(this).text()) $(this).addClass('hasData');
});
$("tr").each(function(){
  $('td.hasData:first', this).addClass('firstCellwithData');
});

第二个位只会用数据样式化第一个单元格,正如我在评论中看到的那样。只需将这两个类的样式分别添加到CSS文件中即可。

演示:http://jsfiddle.net/rkrHx/19/

想出一些比我用的更好的类名;)

根据您需要工作的浏览器,css有一个:empty伪类,您可以使用它来对空元素进行不同的样式设置。根据兼容性表,支持此功能的IE的最低版本是9。然而,它似乎被所有其他浏览器的最新版本所支持。你可以这样使用。

td{
background-color: #F00;
}
td:empty {
background-color: #FFF;
}

上面将显示所有数据的单元格的背景为红色(#F00),所有空白的单元格的背景为白色(#FFF)。

你可以通过css设置边框颜色,但要根据数据值设置背景颜色,你需要使用javascript或jquery,如下所示。你可以使用contains选择器

$("table td:contains('datavalue')").css({backgroundColor:"yellow"});

最新更新