无法在一行列中找到确切的TD值

时间:2012-11-19 16:03:00

标签: jquery

我有两个包含文本SUM的描述,但有一个是粗体的( SUM ,另一个不是(SUM))。我想得到td:eq(5),它的描述包含没有b-tag的SUM。

HTML是动态生成的,所以我不能放任何ID,类等等。

这是我的代码(它为我提供了两个和字段的绿色背景):

$('#someTable tr').each(function () {
    var tr = $('#someId').closest('tr');
    var tdSum = $(tr).find('td:contains("SUM")');

    $(tdSum).closest('tr').find('td:eq(5)').css('background-color', 'green');
});

我希望你明白我要做的事。

3 个答案:

答案 0 :(得分:0)

首先,tr已经可用作当前循环项目。要选择包含文字td但不包含SUM标记的b,请按照指示使用下方的选择器。然后应用格式:

$('#someTable tr').each(function () {            
    var tr = $(this);
    var tdSum = $(tr).find('td:contains("SUM"):not(:has(b))').css('background-color', 'green');         
});

答案 1 :(得分:0)

如果您执行each(),建议您使用$(this)

$('#someTable tr').each(function () {            
        if($(this).find('td:contains("SUM")').length > 0){            
            $(this).find('td:eq(5)').css('background-color', 'green');
        }
});

答案 2 :(得分:0)

尝试使用.not()并且必须使用b标记过滤出td

.not(':has("b")')

或过滤掉元素的过滤功能

$(tr).find('td:contains("SUM")').filter(function(){
     return $('b',this).length == 0;
});