真正基本的jQuery:如何查看表格单元格是否有值?

时间:2012-02-15 14:33:09

标签: jquery html

谷歌搜索了一个多小时,并得到了更复杂的问题的答案,但不是这个简单的问题,我的傻瓜书没有帮助。

如果特定单元格有值,我想更改行的背景。所以:

$('#MyTable tr').each (function(index) {

    $(this).css('background-color', '#FCDCE4');

});

可以正常工作以更改每行中的bg颜色,但是如何才能在列30具有值的行中执行此操作?我可以给我的目标单元格一个css类,并且这样做,但我真的宁愿学会正确使用jQuery(这样我就不需要继续发布基本问题了)。

3 个答案:

答案 0 :(得分:5)

描述

您可以使用jQuery .children().eq()来获取单元格30。

请注意.eq()基于零,因此您需要使用29来获取第30个单元格

示例

$('#MyTable tr)').each (function(index) {
    var cell = $(this).children("td").eq(29)

    // your if condition

    $(this).css('background-color', '#FCDCE4');
});

更多信息

答案 1 :(得分:3)

$('table td:nth-child(30):empty').each(function(){
  $(this).css('background-color','#FCDCE4'); // empty column
});

nth-child选择器抓住第30列 :empty抓住空单元格。

关于jsFiddle的示例可以在这里找到:http://jsfiddle.net/pYA4U/

答案 2 :(得分:1)

首先,将对表的引用放在变量中:

var table = $( '#myTable' )[0];

您可能希望在整个应用程序中保持此引用可用(以便您的所有方法都可以访问它)。

下一步:

var nr = 30; // the column number

$( table.rows ).each( function () {    
    if ( $( this.cells ).eq( nr - 1 ).text() ) {
        $( this ).addClass( 'selected' );
    }
});

因此,如果30.单元格有任何文本内容,请将'selected'类添加到该行。

现场演示: http://jsfiddle.net/2C6C7/