JQuery - 如何选择非空表格单元格的前一个表格单元格

时间:2013-06-27 09:34:03

标签: jquery

我正在尝试选择非空表格单元格的前一个表格单元格。

我有以下代码。

这个工作(突出显示所有空单元格)

$("td.brand:empty").css('background-color', 'red');

此工作(突出显示所有非空单元格)

$("td.brand:not(:empty)").css('background-color', 'green');

这不起作用(突出显示非空单元格的前一个单元格)

$("td.brand:not(:empty)").prev("td.brand").css('background-color', 'yellow');

感谢所有帮助。

由于

4 个答案:

答案 0 :(得分:0)

确保在最后一行之前你的JS中没有错误,因为它有效。

您的代码是正确的,您可以在此处查看:JS Fiddle

此代码:

$("td.brand:empty").css('background-color', 'red');
$("td.brand:not(:empty)").css('background-color', 'green');
$("td.brand:not(:empty)").prev("td.brand").css('background-color', 'yellow');

适用于此:

<table>
    <tr>
        <td class="brand">sdfsdf</td>
        <td class="brand"></td>
        <td class="brand">sdfsdfs</td>
    </tr>
    <tr>
        <td class="brand"></td>
        <td class="brand">ssdfsdf</td>
        <td class="brand"></td>
    </tr>
</table>

答案 1 :(得分:0)

$(document).ready(function(){
    $("td:not(:empty)").each(function(){
        $(this).prev().css('background-color', 'yellow');
    });
});

JS FIDDLE LINK

答案 2 :(得分:0)

在您在评论中提供的示例中,之前没有空行td.brand的行,所以我猜这可能是您需要的,基于您的示例的编辑。

$("tr:has(td.brand:not(:empty))").prev().find("td.brand").css('background-color', 'yellow');

这将查找具有非空td.brand的所有行,然后选择上一行,然后选择该行的td.brand

这是一个小提琴:http://jsfiddle.net/jRCbd/1/(你小提琴的更新)

答案 3 :(得分:0)

如果您需要从行中抽象td,您可以将它们分组到一个对象中并使用索引:

var $tds = $('td.brand');
$tds.filter(":not(:empty)").each(function() {
    var i = $tds.index(this);
    if (i) // prevents wrapping to last
        $tds.eq(i-1).addClass('on');
});

http://jsfiddle.net/L3L6a/3/