100 行のデータがあり、それぞれに年齢、場所、性別の 3 つのプロパティがあります。
年齢、場所、性別に基づいてデータをフィルタリングするための 3 つの選択ボックスがあります。
私の関数 setVisible(true) または setVisible(false) は、行を非表示または表示にします。
ドロップダウン ボックスで選択した内容に応じて、データをフィルター処理したいと考えています。
3 つのイベント リスナーを設定しました。
$('.age_selector').change(function() {
for (i=0;i<data.length;i++){
if (data[i].age == $('.age_selector').val()){
data[i].setVisible(true);
} else {
data[i].setVisible(false);
}
}
});
$('.location_selector').change(function() {
for (i=0;i<data.length;i++){
if (data[i].location == $('.location_selector').val()){
data[i].setVisible(true);
} else {
data[i].setVisible(false);
}
}
});
$('.gender_selector').change(function() {
for (i=0;i<data.length;i++){
if (data[i].gender == $('.gender_selector').val()){
data[i].setVisible(true);
} else {
data[i].setVisible(false);
}
}
});
私の問題は、表示が最近選択したドロップダウン オプションにのみ依存することです。たとえば、場所としてアメリカを選択した場合、[男性] を選択すると、場所や年齢に関係なく、すべての男性がリストに表示されます。アメリカ人男性のみを表示するようにフィルター処理されるようにロジックを組み合わせるにはどうすればよいですか?
ありがとう
編集:カウンターのラインに沿って何かを持ちたいと思っていたので、代わりに
if (data[i].age == $('.age_selector').val()){
data[i].setVisible(true);
}
私は次のようなものを持っているでしょう
if (data[i].age == $('.age_selector').val()){
data[i].counter++;
}else{
data[i].counter--;
}
そして最後に、カウンターが特定の値を超えている場合、データが表示されます。これは可能ですか?