0

私はこれに似たものに取り組んでいます。

追加したいのは、「1ベッドルーム」を選択すると、場所のチェックボックスが選択されていなくても、1ベッドルームのアイテムが表示されるはずです。

ありがとう。

4

2 に答える 2

2

必要なのは、配列が空かどうかをチェックする「または」を下部のステートメントに追加することだけです。

現在のコード構造を維持すると、コードの最後のビットは次のようになります。

$('li').each(function() {
    if (($.inArray($(this).data('location'), loc_array) > -1 || loc_array.length == 0) && ($.inArray($(this).data('bedrooms'), room_array) > -1 || room_array.length == 0)) {
        $(this).show();
    } else {
        $(this).hide();
    }
});

もちろん、コードをリファクタリングして、読みやすく、(おそらく)より効率的にすることもできます。しかし、これの目的は、あなたが何をする必要があるかを理解するのを助けることです。リファクタリングは後で行われます!

于 2012-08-01T11:57:57.713 に答える
0

入力変更関数でこれを試してください。

var bedrooms = $(this).data('bedrooms');
$('ul > li').each(function(){
    if($(this).data('bedrooms') !== bedrooms) $(this).toggle();
});
于 2012-08-01T11:55:34.830 に答える