2
我使用下面片的jQuery施加到输入字段,以缩小在一个表中显示的项目的列表(一个真实table
,与tr
和td
布局):CSS奇数&即使在动态表
$(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,当行动态发生动态变化时,我是否缺少一些重要的..?
一个的jsfiddle例如可以检查在https://jsfiddle.net/4cf8a01L/3/
你必须删除** **时来自DOM的项目(使用'.detach()')。然后将它们全部从一个“池”(一个数组)的分离元素中加回来。你需要(不知何故)记住'
回答
的还挺哈克的方式做到这一点 - https://jsfiddle.net/6rk09jb0/1/
添加奇数和偶数类
申请奇数和偶数过滤
来源
2016-12-07 09:31:22 phoa
请不要做'count + = 1;'等事情。你应该使用'className = count ++%2? 'odd':'even';'或者简单地将它改为'count ++;'。另外,你应该避免重复'$(this)'。而且,由于你正在向元素应用一个类,他们将首先没有一个类。您应该在最后一行添加'.keyup()'来触发事件。 –
谢谢,这个工作干净整洁。至少对于Fiddle演示,现在我必须让它与http://tablesorter.com/插件一起工作:) – lapingultah
@lapingultah你最好使用https://datatables.net/(在我看来)。 –
不幸的是
:nth-child
发生在考虑到所有的子元素,无论其知名度。为了解决这个问题,你可以使用jQuery应用上可见行的行条纹页的负荷,也当过滤器被改变,这样的:注意的是,以上只是搜索对于
tr
在tbody
内,而不是明确排除索引0
处的行。你也可以用你现在的CSS,但你筛选的时候,然后还必须把它们放回正确的位置的系统,既可以通过分类或明确设置自己的位置需要
remove()
或detach()
的tr
。虽然此解决方案的CSS将会更简单,但所需的逻辑将更为复杂。
来源
2016-12-07 09:30:27
我很抱歉,但这个答案真的不会增加太多。我对它有点失望。 @ phoa的答案是优越的(更快的代码,没有在Javascript中间抛出随机的CSS),并对我的评论(我仍然同意,但他们的答案好得多)略作了一番。此外,他们的答案与旧版浏览器兼容(对于那些必须开发不赞成和不支持的陷阱的人)。 –
对不起,你觉得那样。至于引入的'随机css',它可以很容易地修改为使用一个类。另外请注意,当在
没有人使用IE4。 IE6-8仍然(很少)使用。我只是因为CSS和Javascript和非常慢的重复选择符“tr:visible”的混合而感觉到这种方式。 –
相关问题