1

私は自分のウェブサイトの問題のある部分からjsFiddleを作成しました。

私がコードを書いてみたとき:

フィールドにいくつかの文字を入力すると、先行入力を使用して名前が一覧表示されます。先行入力ドロップダウンで要素のいずれかをクリックすると、検索を含む内部がないアコーディオン<li>が非表示になり、内部に検索が含まれるアコーディオンが非表示になります<li>。コンテンツは検索に一致します。一致した<li>sのみが表示され、他は非表示になります。

現在、<li>検索が含まれていない場合でも、すべてのが表示されます。

私はそれを修正しようとしましたが、解決策への道を見つけることができません。

4

1 に答える 1

1

あなたのコードを使用して、これに変更しました。LIを表示した後、表示されたLIのリストを検索し、containsセレクター基準を満たさない子を非表示にします。

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 に答える