从列隐藏行...

时间:2009-12-08 06:01:51

标签: jquery

我有这个

<table>
<tr>
    <td>...</td>
    <td>...</td>
    <td class="Data">...</td>
</tr>
<tr>
    <td>...</td>
    <td>...</td>
    <td class="noData">...</td>
</tr>
<tr>
    <td>...</td>
    <td>...</td>
    <td class="noData">...</td>
</tr>
</table>

使用jQuery,当一行(tr)有一个带有“noData”类的列(td)时,我想隐藏整个行,这个表上的结果将是

<table>
<tr>
    <td>...</td>
    <td>...</td>
    <td class="Data">...</td>
</tr>
</table>

谢谢,

3 个答案:

答案 0 :(得分:4)

您可以尝试以下代码:

$(document).ready(function()
{
    $("td.noData").parent().hide("fast");
});

或者您可能希望在代码上方使用 remove()而不是 hide()

$(document).ready(function()
{
    $("td.noData").parent().css('display':'none');
});

答案 1 :(得分:2)

虽然sarfraz的解决方案有效,但我认为这段代码更接近于问题描述,这对于可读性和后来的理解是一件好事。

$("tr:has(>td.noData)").hide();

答案 2 :(得分:1)

要获得包含没有数据的TD的tr的列表,只需调用:

$("tr:has(> td.noData)")

一旦你拥有它,隐藏它就变得微不足道了(只需在末尾添加.hide())。

相关选择器是Has选择器和parent>child选择器。