都市や州によって変化するページ用の JavaScript フィルターを作成するのに助けが必要です。州のオプションは単一の選択ドロップダウンとして提供され、都市はチェックボックスとして表示されます (つまり、複数の都市を選択できます)。すべての DIV (1 つの都市 DIV と 1 つの州 DIV を含む親 DIV) には、次のように、それぞれの DIV に都市と州の名前が含まれています。
<div class='row'>
<div class='state'>Alabama</div>
<div class='city'>Anniston</div>
</div>
これらは最初にページに読み込まれ、その後、初期フィルター (state='AL' city='all') に基づいて非表示になります。ユーザーが新しい州を選択するか、都市をチェック/チェック解除してフィルターを変更すると、どの DIV が非表示で、どの DIV が表示されているかを再評価する JavaScript 関数がトリガーされます。
状態フィルターは、次を使用してうまく機能します。
$(".parent").hide();
$(".state:contains('" + state + "')").parent().show();
関数に渡された状態に一致するすべての親 DIV を表示します。都市選択に問題があります。ユーザーが複数の都市を選択できるようにしたいので、都市の DIV が選択した都市のいずれかと一致し、さらに州と一致するすべての親 DIV を表示する方法が必要です。すべての DIV を非表示にしてから、一致する州を表示し、次に一致しない都市を非表示にしようとしています。何かのようなもの:
$(".parent").hide();
$(".state:contains('" + state + "')").parent().show();
$(".city:not(:contains('" + [city1 OR city2 OR city3 OR ...] + "'))").parent().hide();
明らかに [city1 OR city2 OR city3 OR ...] 部分は機能しません。このような複数の入力でこれを機能させる方法に関する提案はありますか?
ありがとう!