Google マップにマーカーを配置しています。マーカーを表示または非表示にする動的な「and」条件を作成しようとしているフォームに、多数のチェックボックス (現在 19 個) があります。単一のチェックボックスが選択されている場合、コードは個々の部分に対してうまく機能します。複数のチェックボックスが選択されている場合にコードを考慮して、次の条件を満たすマーカーを追加するだけでなく、すべての条件を満たすマーカーのみを表示したいと思います。
ギブンズ:
- チェックボックスの ID は「q」+# です
- 各 Google マーカーには、各 q#(チェックボックス) に対して true または false の値があります。コードは次のとおりです。 、q13、q14、q15、q16、q17、q18、q19)
- マーカーポイントが多い
必要:
チェックボックス 1 と 2 がチェックされている場合、createMarker 変数で q1 = true "および" q2 = true であるマーカーのみが表示されます。ただし、1 つのチェックボックスをオンにして、正しいマーカーを表示できるようにすることもできます。チェックボックスが選択されるすべての可能性 (1 から 19) には、この条件が必要です。
どうすればこれを機能させることができますか?
単一条件の現在のコード:
//loop through the checkbox questions
for (var h=1; h<20; h++) {
//check to see if the checkbox is checked
if (document.getElementById('q'+h).checked == true) {
for (var i=0; i<gmarkers.length; i++) {
//check to see if the Marker has that variable set to true for the question it is loop through
if (h == 1 && gmarkers[i].q1 == 1) {
\\ show marker
gmarkers[i].show();
}
if (h == 2 && gmarkers[i].q2 == 1) {
// turned off for testing
//gmarkers[i].show();
}
if (h == 3 && gmarkers[i].q3 == 1) {
//gmarkers[i].show();
}
if (h == 4 && gmarkers[i].q4 == 1) {
//gmarkers[i].show();
}
if (h == 5 && gmarkers[i].q5 == 1) {
//gmarkers[i].show();
}
if (h == 6 && gmarkers[i].q6 == 1) {
//gmarkers[i].show();
}
if (h == 7 && gmarkers[i].q7 == 1) {
//gmarkers[i].show();
}
if (h == 8 && gmarkers[i].q8 == 1) {
//gmarkers[i].show();
}
if (h == 9 && gmarkers[i].q9 == 1) {
//gmarkers[i].show();
}
if (h == 10 && gmarkers[i].q10 == 1) {
//gmarkers[i].show();
}
if (h == 11 && gmarkers[i].q11 == 1) {
//gmarkers[i].show();
}
if (h == 12 && gmarkers[i].q12 == 1) {
//gmarkers[i].show();
}
if (h == 13 && gmarkers[i].q13 == 1) {
gmarkers[i].show();
}
if (h == 14 && gmarkers[i].q14 == 1) {
//gmarkers[i].show();
}
if (h == 15 && gmarkers[i].q15 == 1) {
//gmarkers[i].show();
}
if (h == 16 && gmarkers[i].q16 == 1) {
//gmarkers[i].show();
}
if (h == 17 && gmarkers[i].q17 == 1) {
//gmarkers[i].show();
}
if (h == 18 && gmarkers[i].q18 == 1) {
//gmarkers[i].show();
}
if (h == 19 && gmarkers[i].q19 == 1) {
//gmarkers[i].show();
}
}
}