jQuery搜索表行,隐藏和可见

我有一张桌子,显示消息历史记录。 默认情况下,该表仅显示两个人之间的最后一条消息。 但是所有的消息都在HTML代码中,只是它们设置为display:none;

我试图让搜索通过可见和隐藏的tr行。

我现在有什么:

HTML:

  
Finish design 0%
Aquincum HTML code 89%
Aquincum cpp code 99%
Fix buggy css styles 16%

jQuery的:

 $("#search").keyup(function() { var value = this.value.toLowerCase().trim(); $("#history tr").each(function (index) { if (!index) return; $(this).find("td").each(function () { var id = $(this).text().toLowerCase().trim(); var not_found = (id.indexOf(value) == -1); $(this).closest('tr').toggle(!not_found); return not_found; }); }); }); 

我有两个问题:

  1. 由于某种原因,第一个tr始终可见,即使它与搜索不匹配。 尝试搜索有buggy css 。 你会看到第一个tr仍在那里。

  2. 当我搜索某些内容,然后清除搜索字段。 第二个tr默认设置为display:none; 是可见的。 它必须以某种方式返回display:none状态

的jsfiddle:

http://jsfiddle.net/2T5yJ/

对于第一行索引为零。 所以它没有到达

  $(this).find("td").each(function () { 

去掉

  if (!index) return; 

搜索filter可以正常工作

更新你可以检查value=""并写入逻辑以将行显示回原始行

请检查更新的小提琴

小提琴