コントロールには 3 つのカテゴリがあり、それぞれに複数のオプションがあります。
<ul class="series-selector-items">
<li id="filter-type-A">A</li>
<li id="filter-type-B">B</li>
<li id="filter-type-C">C</li>
</ul>
<ul class="series-selector-items">
<li id="filter-type-E">E</li>
<li id="filter-type-F">F</li>
<li id="filter-type-G">G</li>
</ul>
<ul class="series-selector-items">
<li id="filter-type-H">H</li>
<li id="filter-type-I">I</li>
<li id="filter-type-J">J</li>
<li id="filter-type-K">K</li>
</ul>
次に、上記のコントロールの属性を組み合わせたアイテムのリストを作成します。
<ul>
<li class="A E H">Item AEH</li>
<li class="A F I">Item AFI</li>
<li class="A G J">Item AGJ</li>
<li class="A G H">Item AGH</li>
<li class="B E H">Item BEH</li>
<li class="B F H">Item BFH</li>
<li class="B F H">Item BFH</li>
<li class="C E I">Item CEI</li>
<li class="C G K">Item CEI</li>
etc etc...
</ul>
選択したコントロール オプションの組み合わせに基づいて結果をフィルター処理する方法を見つけようとしています。コントロール オプション (例: AEH) の任意の組み合わせを選択し、正しい属性 (item AEH) を持つすべてのアイテムを表示できるようにする必要があります。
複数のオプションを各カテゴリ (ABEK) で選択できるようにし、カテゴリが連携して要素の正しい組み合わせを持つオプションを表示する必要があります。同じカテゴリから複数のオプションが選択されている場合でも、それらの結果が表示されます。コントロール リストを li として作成しましたが、チェックボックスにすることもできます。
jQueryでこれを行う最良の方法は何ですか?
編集:これは、選択したオプションを配列に追加する、これまでに試した1つのアプローチです:
var seriesSelected = [];
$('ul.series-selector-items').click(function(){
//Select the series clicked and give it the "selected" class
$(this).toggleClass("selected");
//Once selected, add the series to the seriesSelected array
if ($(this).hasClass('selected')) {
seriesSelected.push($(this).attr('id'));
}
//If de-selecting (by toggling off the "selected class"), then remove from the seriesSelected array
else {
seriesToRemove = $(this).attr('id');
seriesSelected = $.grep(seriesSelected, function(value) {
return seriesToRemove != value;
});
}
});
そこからどこへ行けばいいのかわからない...