jQuery-如何在单击时筛选行?

jQuery-如何在单击时筛选行?,jquery,class,filter,html-table,row,Jquery,Class,Filter,Html Table,Row,当我点击一个按钮时,我试图找出如何基于row类过滤一个表。我一直在研究各种jquery插件,但它们似乎都没有达到我所需要的效果。有些有过滤的文本框,等等,我尝试过修改代码,但坦白说,我只是把事情搞得一团糟。。。帮忙?我有一张这样的桌子: <table> <tr class="dr"><td>data</td></tr> <tr class="dr"><td>data</td></tr> &

当我点击一个按钮时,我试图找出如何基于row类过滤一个表。我一直在研究各种jquery插件,但它们似乎都没有达到我所需要的效果。有些有过滤的文本框,等等,我尝试过修改代码,但坦白说,我只是把事情搞得一团糟。。。帮忙?我有一张这样的桌子:

<table>
<tr class="dr"><td>data</td></tr>
<tr class="dr"><td>data</td></tr>
<tr class="sr"><td>data</td></tr>
<tr class="mr"><td>data</td></tr>
<tr class="mr"><td>data</td></tr>
<tr class="dr"><td>data</td></tr>
<tr class="dr"><td>data</td></tr>
<tr class="sr"><td>data</td></tr>
<tr class="sr"><td>data</td></tr>
<tr class="sr"><td>data</td></tr>
<tr class="sr"><td>data</td></tr>
</table>

数据
数据
数据
数据
数据
数据
数据
数据
数据
数据
数据
我有三个按钮:

<input type="button" name="filterdr" /> <!-- clicking this will only show rows with dr class -->
<input type="button" name="filtersr" /> <!-- clicking this will only show rows with sr class -->
<input type="button" name="filtermr" /> <!-- clicking this will only show rows with mr class -->

您可以为每次单击按钮分别执行以下操作,应该可以解决问题

$("tr:not(.dr)").hide();
$("tr.dr").show();
即:


您可以为每次单击按钮分别执行下面的操作,它应该是可行的

$("tr:not(.dr)").hide();
$("tr.dr").show();
即:

对其他按钮也一样


您也可以对其他按钮执行相同的操作。

类似这样的操作可能会起到作用:

$('input[type=button]').click(function()
{
    $('tr').hide()
        .filter('.' + this.name.replace(/filter/, '')).show();
});

将ID添加到表中是一个好主意。

类似这样的操作可能会奏效:

$('input[type=button]').click(function()
{
    $('tr').hide()
        .filter('.' + this.name.replace(/filter/, '')).show();
});
将ID添加到表中是个好主意。

正好满足您的需要:

  • 列或行过滤
  • 行内创建的事件处理
  • 从单个搜索文本框筛选所有列
  • 多列排序
  • 可编辑行
我在生产项目中使用过这个,有些情况下我选择在Telerik RadGrad上使用数据表。它非常灵活,非常适合RIA。

完全满足您的需要:

  • 列或行过滤
  • 行内创建的事件处理
  • 从单个搜索文本框筛选所有列
  • 多列排序
  • 可编辑行
我在生产项目中使用过这个,有些情况下我选择在Telerik RadGrad上使用数据表。它非常灵活,对RIA来说非常好

$('input[type=button]').click(function()
{
    $('tr').hide()
        .filter('.' + this.name.replace(/filter/, '')).show();
});