隐藏没有特定类的表行

时间:2012-07-10 09:33:12

标签: jquery

function filterRows(statusName) {
    $("#mainTable tbody tr."+statusName).hide();
}

它隐藏了具有名为statusName的类的行。如何仅隐藏没有一行的行?

5 个答案:

答案 0 :(得分:4)

使用:not() selector

$("#mainTable tbody tr:not(."+statusName + ')').hide();

答案 1 :(得分:3)

function filterRows(statusName) {
    $("#mainTable tbody tr."+statusName).siblings().hide();
}

答案 2 :(得分:0)

使用.hasClass()属性

$("#mainTable tbody tr").map( function(){
if(!$(this).hasClass('statusName'))
{
  $(this).hide();
}
});

Working DEMO

答案 3 :(得分:0)

或者只是这个:

$('#mainTable tbody tr').each(function() {     
$(this).not('.selected').hide()
  });

答案 4 :(得分:0)

我为此创建了一个快速POC。这可以让您了解如何根据需要自定义它。您可以直接复制以下代码并在浏览器中执行以查看结果。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MVCDemoApp.Default" %>

<!DOCTYPE html>
<html>
<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<head runat="server">
<title></title>
<style>
    .header
    {
        font-family: Verdana;
        font-size: large;
        background-color: Gray;
    }
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
    <table style="widt: 100%" id="mainTable">
        <tr class="header">
            <td>
                Head
            </td>
        </tr>
        <tr>
            <td>
                No Class
            </td>
        </tr>
        <tr class="header">
            <td>
                Header Class
            </td>
        </tr>
    </table>
</div>
</form>
</body>
<script>
/*
//Hides the rows with classes
$('table tr[class="header"]').hide(); 
*/

//hides the rows without classes
$('table tr[class!="header"]').hide(); 
</script>
</html>