1

我从我网站的有问题的部分制作了一个jsFiddle 。

当我尝试编写代码时:

在字段中键入一些字母将使用 typeahead 列出名称,并且当在 typeahead 下拉列表中单击任何元素时,没有包含搜索的<li>内部的手风琴将隐藏,而其中包含搜索<li>的手风琴将隐藏content 匹配搜索,只有匹配<li>的 s 应该显示,其他应该隐藏。

现在,所有的都<li>将显示,即使它们不包含搜索。

我尝试修复它,但根本找不到解决方法。

4

1 回答 1

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;
    },
})
于 2013-01-05T01:14:31.697 回答