我从我网站的问题部分发了jsFiddle。
当我尝试编写代码时:
在字段中键入一些字母将使用typeahead列出名称,当在typeahead下拉列表中单击任何元素时,包含搜索的没有<li>
的手风琴将隐藏,并且如果其内容与<li>
匹配,其内容与搜索匹配,则只应显示匹配的<li>
,其他应隐藏。
现在,所有<li>
都会显示,即使它们不包含搜索内容。
我尝试修复它,但根本无法找到解决方案。
答案 0 :(得分:1)
使用您的代码我将其修改为此。 显示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;
},
})