複数のドロップダウンメニューを持つクライアントWebサイトのページに対していくつかのフィルタオプションを作成しようとしています。私はそれを動作させることができますが、オプションを選択すると、常にフィルタリングがリセットされます。私は彼らが "一緒に"働く必要があります。それはホテル内の部屋をフィルタリングするためのものです(たくさんの部屋はありません)。jQueryでのフィルタリング複数のドロップダウンを使用した「検索」と「フィルタ」
最初のドロップダウンは部屋に入る人の数、次に借りる部屋のタイプ、そして最後にその部屋/家の寝室の数です。
ユーザーは3つのドロップダウンをすべて使用して結果をフィルタリングできます。または、彼は1つしか使用できません。彼は最初のドロップダウンで「3」を選択できる必要があります。その後、結果ボックスに「3」までのルームのみを表示するためにすべてをフィルタリングします。その後、2番目のドロップダウンで "Studios"を選択した場合、部屋に入る人数に3を選択したことを覚えておく必要があるだけでなく、今すぐスタジオを選択したことを心に留めておいてください、それは3人まで持つことができるスタジオを表示する必要があります。
私はあなたが考えを得ると思います。 は、ここに私のHTMLコードです:
<select class="bedroom-min">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<select class="type">
<option value="all">Select...</option>
<option value="casitas">Casitas</option>
<option value="studios">Studios</option>
<option value="dorm">Dorm</option>
</select>
<select class="bedrooms">
<option value="all">Select...</option>
<option value="1">1 bedroom</option>
<option value="2">2 bedrooms</option>
</select>
<div class="property-load-section">
<div class="property-item" data-bedrooms="5" data-type="casitas" data-bed="1">Room #529</div>
<div class="property-item" data-bedrooms="4" data-type="studios" data-bed="2">Room #737</div>
<div class="property-item" data-bedrooms="3" data-type="dorm" data-bed="2">Room #123</div>
<div class="property-item" data-bedrooms="2" data-type="studios" data-bed="2">Room #126</div>
<div class="property-item" data-bedrooms="1" data-type="casitas" data-bed="1">Room #523</div>
</div>
そしてここでjQueryのコードがあります:
//Filtering for number of person that can sleep in that room
$("select").change(function() {
var minValue = $('select.bedroom-min').val();
$('.property-load-section').find('.property-item').filter(function() {
return $(this).attr('data-bedrooms') < minValue;
}).fadeOut('fast');
$('.property-load-section').find('.property-item').filter(function() {
return $(this).attr('data-bedrooms') >= minValue;
}).fadeIn('fast');
});
//Filtering for type of rooms
$("select.type").change(function() {
var roomType = $('select.type').val();
$('.property-load-section').find('.property-item').filter(function() {
return $(this).attr('data-type') != roomType;
}).fadeOut('fast');
});
//Filtering for the number of bedrooms
$("select.bedrooms").change(function() {
var roomBed = $('select.bedrooms').val();
$('.property-load-section').find('.property-item').filter(function() {
return $(this).attr('data-bed') != roomBed;
}).fadeOut('fast');
});
はここCodePenのリンクです:https://codepen.io/anon/pen/bRxXVK?editors=1010
誰もがこれで私を助けることはできますか?私はかなりjavascript/jQueryの新しいです。ありがとうございます
恐ろしい、私はここで何をする必要があるかについて説明するためのおかげで。今はすべてがより明確になります。完璧に動作します。 – larin555