我从我网站的有问题的部分制作了一个jsFiddle 。
当我尝试编写代码时:
在字段中键入一些字母将使用 typeahead 列出名称,并且当在 typeahead 下拉列表中单击任何元素时,没有包含搜索的<li>
内部的手风琴将隐藏,而其中包含搜索<li>
的手风琴将隐藏content 匹配搜索,只有匹配<li>
的 s 应该显示,其他应该隐藏。
现在,所有的都<li>
将显示,即使它们不包含搜索。
我尝试修复它,但根本找不到解决方法。
我从我网站的有问题的部分制作了一个jsFiddle 。
当我尝试编写代码时:
在字段中键入一些字母将使用 typeahead 列出名称,并且当在 typeahead 下拉列表中单击任何元素时,没有包含搜索的<li>
内部的手风琴将隐藏,而其中包含搜索<li>
的手风琴将隐藏content 匹配搜索,只有匹配<li>
的 s 应该显示,其他应该隐藏。
现在,所有的都<li>
将显示,即使它们不包含搜索。
我尝试修复它,但根本找不到解决方法。
使用您的代码,我将其修改为此。显示 LI 后,您要搜索显示列表并隐藏任何不符合包含选择器条件的子项
http://jsfiddle.net/jyuYB/10/演示
更改代码:
$('#findname').typeahead({
source: namelist,
updater: function(item) {
$('#ponies .accordion-group').show();
$('#ponies .accordion-body li:not(:contains(' + item + '))').parent().parent().parent().parent().hide();
$('#ponies .accordion-body li:contains(' + item + ')').parent().parent().parent().parent().show();
$('#ponies .accordion-body li:contains(' + item + ')').parent().parent().parent().addClass('in');
$('#ponies .accordion-body li').hide();
var tmp = $('#ponies .accordion-body li:contains(' + item + ')').show();
tmp.each(function() {
$(this).siblings().each(function(){ $.hide() });
});
return item;
},
})