0

私は動的検索オプションを実装するために JQuery を使用しています。ユーザーが検索テキストを入力すると、リストは一致しない要素を SlideUp() し、一致する要素を SlideDown() します。私はこのサイトをベースとして使用し、非常にうまく機能するようにしました。

たとえば、リスト要素の5つのうちSlidesUp 2を入力すると、以前に入力したテキストを消去すると、元の5つではなく4つだけが表示されます。そして、最後に隠されているのは必ずしも同じ要素であるとは限りません。

これは私の関連コードです:

$("#searchTextBoxId").change(function(){}).keyup( function () {
    $(this).change();
});
$("#searchTextBoxId").change(function(){
    var filter = $("#searchTextBoxId").val();
    if (filter){$("#ajaxListView").find("name:not(:Contains("+filter+"))").parent().parent().slideUp();$("#ajaxListView").find("name:Contains("+filter+")").parent().parent().slideDown();      
    }else{
    $("#ajaxListView").find('untipodedom').slideDown();
    $("#mst").text("Amount of elements: "+$("#ajaxListView").find('untipodedom').length);       
    }
}); 

出力テキストに 5 (表示する必要がある div の量) と表示されているという事実は、さらに奇妙です。何か案は???

4

1 に答える 1

0

わかりました、これを理解するのに長い時間がかかりました。それはかなりばかげたものであることが判明しました。最終的に誰かに役立つことが判明した場合に備えて、これを投稿します。

「else」の場合、jquery の「find」セレクターが正しく選択されていませんでした。私はそれを次のように変更しました:

function SlideUpAndDown(filter){
    if (filter){
        $("#cListView").find("name:not(:Contains("+filter+"))").parent().parent().slideUp();
        $("#cListView").find("name:Contains("+filter+")").parent().parent().slideDown();
    } else {
        $("#cListView").find("*").parent().parent().slideDown();            
    }
}

CListView 内のすべての項目を選択するために、ユニバーサル セレクター '*' を使用しました。それだけです、魅力のように機能します。

于 2011-07-15T21:37:34.393 に答える