地元のランチスポットを紹介するサイトを作っています。このサイトでは、チェックボックスを使用してコンテンツの表示と非表示を切り替えています:-
<li>Sandwich: <input type="checkbox" checked="checked" id="sandwichbox" onclick="boxclick(this,'sandwich')" /></li>
<li>Salad: <input type="checkbox" id="saladbox" onclick="boxclick(this,'salad')" /></li>
<li>Pasta: <input type="checkbox" id="pastabox" onclick="boxclick(this,'pasta')" /></li>
これらは正常に機能していますが、switch ステートメントを使用してマーカーを削除しています。
function hide(category) {
switch(category) {
case "sandwich":
for (var i=0; i<gmarkers.length; i++) {
if (gmarkers[i].sandwich == 1) {
gmarkers[i].setVisible(false);
}
}
break;
case "salad":
for (var i=0; i<gmarkers.length; i++) {
if (gmarkers[i].salad == 1) {
gmarkers[i].setVisible(false);
}
}
break;
case "pasta":
for (var i=0; i<gmarkers.length; i++) {
if (gmarkers[i].pasta == 1) {
gmarkers[i].setVisible(false);
}
}
break;
}
}
私がこれを行っているのは、店舗が複数のもの (サンドイッチとサラダなど) を販売できるため、各店舗が単一のカテゴリを持つことはできないからです。したがって、私の XML 内には、個々の製品ごとにノードがあります:-
<markers>
<marker name="Earl of Sandwich" address="40 Ludgate Hill" tel="020 7236 2846" website="www.earlofsandwich.co.uk" lat="51.514072" lng="-0.101638" sandwich="1" salad="1" pasta="" oriental="" curry="" mexican="" jacket="" soup="1" sushi="" roast="" wraps="1" falafel=""/>
<marker name="Chao! Now" address="4 St Andrews Hill" tel="02036320368" website="www.chaonow.co.uk" lat="51.513008" lng="-0.101322" sandwich="1" salad="" pasta="" oriental="1" curry="" mexican="" jacket="" soup="1" sushi="" roast="" wraps="" falafel=""/>
</markers>
私がやりたいのは、switch ステートメントを削除して、次のようなものに置き換えて、カテゴリ値を for ループに渡すことですが、動作するように gte できないようです:-
function hide(category) {
for (var i=0; i<gmarkers.length; i++) {
if (gmarkers[i].category == 1) {
gmarkers[i].setVisible(false);
}
}
}
私は次のことを試しました: -
function hide(category) {
var mymarker = "gmarkers[i]." + category;
for (var i=0; i<gmarkers.length; i++) {
if (mymarker == 1) {
gmarkers[i].setVisible(false);
}
}
}
しかし、これは mymarker を変数として渡すだけで、i には値が割り当てられていません。
何か助けがあれば大歓迎です。または、間違った道を進んでいて、データに別の形式を使用する必要がある場合は、指摘してください。私が考えていたもう1つの方法は、値を配列に追加してその配列をループすることでしたが、値が1またはnullしかなく、カテゴリ変数を使用して2次元配列を再び機能させることができませんでした。
事前に感謝します。さらに情報が必要な場合はお知らせください。