Этот фрагмент кода (из uiTableFilter) просматривает каждую строку таблицы, чтобы увидеть, может ли он найти искомый текст (я переименовал его метод с более подходящим именем). Если это так, он вызывает один из двух методов, чтобы скрыть или показать эту строку (match () или 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();
}
});