每个JQuery循环

时间:2014-11-07 12:44:36

标签: jquery

我有下面的JQuery代码。基本上尝试在td标记中找到空字符串并将css添加到tr标记,但它将css添加到所有行而不是具有空字符串的行。提前谢谢。

$('#mytable > tbody  > tr').each(function(){  
    var $nthis = $(this);

    $('td:first-child').each(function() {
        var $firsttd = $(this);
        console.log($firsttd.text());
    });

//back in the <tr> level
if ($firsttd.text() == "")
    $nthis.css('border-top','solid 2px blue'); 

}); //end of main func

4 个答案:

答案 0 :(得分:2)

尝试此操作:首先迭代每个td的{​​{1}}并检查tr是否为空。如果为空,则使用text()转到tr并更改css。

parent()

<强> DEMO

答案 1 :(得分:2)

使用:first-child CSS3选择器获取第一个td,然后:empty CSS3选择器仅检索空td

$(function () {
    $('#mytable > tbody  > tr td:first-child:empty').each(function(){  
        $(this).parent().css('border-top','solid 2px blue');
    });
});

http://jsfiddle.net/7n20ast0/

通过删除each循环,您可以缩短它:

$('#mytable > tbody  > tr td:first-child:empty')
        .parent().css('border-top','solid 2px blue');

http://jsfiddle.net/7n20ast0/1/

答案 2 :(得分:0)

有一个空元素的jquery伪选择器:

$('#mytable > tbody > tr').find('td:first-child:empty').each(function(){  
var $nthis = $(this).parent();

$nthis.css('border-top','solid 2px blue'); 

}); //end of main func

答案 3 :(得分:0)

使用

if ($firsttd.text() == "")
    $(this).parent().css('border-top','solid 2px blue');