列表过滤器不会对keyup起作用,忽略一些列表项

时间:2013-02-26 13:40:31

标签: jquery

我发现这个很好的列表过滤jQuery脚本并实现到我的简单ol li列表。当您在搜索中键入内容时,它会搜索li项中键入的字母,并隐藏lis的其余部分。工作完美!

但是,我将相同的脚本实现为更复杂的list。唯一不同的是HTML,我在divs内有额外li,而另一个则没有。当我在新list上搜索某些内容时,它会正常运行。当我删除搜索字词时,它应该slideDown所有原始li项,但它确实存在。请你们好好看看下面的小提琴,告诉我我做错了什么?

工作简单列表Fiddle 工作列表不正确Fiddle

我感觉下面的剧本

$(list).find("a:not(:Contains(" + filter + "))").parent().slideUp();
$(list).find("a:Contains(" + filter + ")").parent().slideDown();

我尝试了几种不同的方式,但都没有。!

非常感谢。

1 个答案:

答案 0 :(得分:1)

这应该有效。     http://jsfiddle.net/mpt8T/

$(list).find('li').each(function(){
    if ( $(this).text().indexOf(filter) >= 0 )
        $(this).slideDown();
    else
        $(this).slideUp();
});