【发布时间】:2016-12-07 18:22:14
【问题描述】:
我正在使用以下 jQuery 应用到输入字段来缩小表格中显示的项目列表(真正的 table,具有 tr 和 td 布局):
$(function(){
$("#search").keyup(function() {
var value = this.value.toLowerCase();
$(".table").find("tr").each(function(index) {
if (index === 0) return;
var id = $(this).find("td").text().toLowerCase();
$(this).toggle(id.indexOf(value) !== -1);
});
});
});
否则它工作得很好,但是由于.table 具有.table tr:nth-child(odd) 和(even) 的初始布局目标样式,因此当应用列表缩小搜索过滤器时,奇数行和偶数行会变得混乱。
到目前为止,当行动态变化时,我一直对 removeClass 和 addClass 不走运,我是否遗漏了一些重要的东西..?
可以在https://jsfiddle.net/4cf8a01L/3/查看 JSFiddle 示例
【问题讨论】:
-
您必须从 DOM 中删除项目(使用
.detach())。然后,从分离元素的“池”(数组)中将它们全部添加回来。您需要(以某种方式)记住<tr>的顺序(类似data-pos的属性?)。如果您不从 DOM 中删除,所有样式都将由浏览器应用。
标签: javascript jquery html css