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; }); }); });
我有两个问题:
-
由于某种原因,第一个
tr
始终可见,即使它与搜索不匹配。 尝试搜索有buggy css
。 你会看到第一个tr
仍在那里。 -
当我搜索某些内容,然后清除搜索字段。 第二个
tr
默认设置为display:none;
是可见的。 它必须以某种方式返回display:none
状态
的jsfiddle:
http://jsfiddle.net/2T5yJ/
对于第一行索引为零。 所以它没有到达
$(this).find("td").each(function () {
去掉
if (!index) return;
搜索filter可以正常工作
更新你可以检查value=""
并写入逻辑以将行显示回原始行
请检查更新的小提琴
小提琴