jQuery插件uiTableFilter修改

时间:2010-12-06 02:41:30

标签: jquery filter

如果过滤掉所有行(tbody),如何修改此插件以隐藏整个表(即标题)?相反,当一行或多行重新出现时,我想显示标题等。

提前致谢。

2 个答案:

答案 0 :(得分:0)

documentation中说:

  
      
  • ifHidden - 如果隐藏了一个或多个元素,则执行回调
  •   

因此,如果侯使用.hide()回调,你可能得到你想要的东西。

我尝试自己做,也许我们可以帮助你了解具体细节,但我不能为你做:)

祝你好运!

答案 1 :(得分:0)

此代码片段(来自uiTableFilter)查看每个表行以查看是否可以找到要搜索的文本(我使用更好的名称重命名了他的方法)。如果是这样,它会调用两种方法之一,隐藏或显示该行(matches()或noMatch())。

elems.each(function ()
{
    var elem = $(this);
    $.uiTableFilter.FoundSearchString(getText(elem), words, false) ? matches(elem) : noMatch(elem);
}

我在此代码后面添加了以下代码。这段代码稍微复杂一点,因为我的屏幕上有多个表格,我同时过滤它们。我的表有“SearchResultsTable”类。我只是抓住我的所有表格,迭代它们,在每个表格中获得可见行数。如果没有可见的行,我会隐藏标题,否则,我会显示它。

var grids = $(".SearchResultsTable");
grids.each(function()
{
    var grid = $(this);
    var rowCount = grid.find("tbody:first > tr:visible").length;
    if (rowCount > 0)
    {
        grid.find("thead").show();
    }
    else
    {
        grid.find("thead").hide();
    }
});