Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从google maps v3中删除标记?_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 如何从google maps v3中删除标记?

Javascript 如何从google maps v3中删除标记?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在建立一个网站,显示当地的地方吃午饭。网站使用复选框隐藏和显示内容:- <li>Sandwich: <input type="checkbox" checked="checked" id="sandwichbox" onclick="boxclick(this,'sandwich')" /></li> <li>Salad: <input type="checkbox" id="saladbox" onclick="boxclick(thi

我正在建立一个网站,显示当地的地方吃午饭。网站使用复选框隐藏和显示内容:-

<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;
    }
    }
    
    函数隐藏(类别){
    开关(类别){
    “三明治”一案:
    
    对于(var i=0;i我相信您希望使用变量访问对象属性。请使用括号表示法而不是点表示法。 假设有一个对象“person”

    您可以访问“名称”属性,如

    var name = person["name"]
    
    当属性名称包含可能是语法错误或关键字/保留字的字符时,也可以使用括号表示法。例如:

    person["first name"] = "Nicholas";
    
    它还允许在大括号内使用变量名

    person[propertyName] = "some value"; //propertyName is a variable
    
    所以在你的情况下应该是

    function hide(category) {
        var mymarker = gmarkers[i][category];
          for (var i=0; i<gmarkers.length; i++) {
            if (mymarker == 1) {
              gmarkers[i].setVisible(false);
            }
          }
    }
    
    函数隐藏(类别){
    var mymarker=gmarkers[i][category];
    
    对于(var i=0;i,如果类别是标记的一个属性,则应该可以:

    function hide(category) {
       for (var i=0; i<gmarkers.length; i++) {
         if (gmarkers[i][category] == 1) {
            gmarkers[i].setVisible(false);
         }
       }
    }
    
    函数隐藏(类别){
    
    对于(var i=0;iThanks,这是我想要的。我认为在gmarkers[i]抛出我之后,..name和[“name”]是等价的,这是我不理解的。当我试图传递category的值时,我没有意识到我必须使用[]。仅仅使用.category就被破坏了,因为没有category的XML节点(如果有道理的话)
    person["first name"] = "Nicholas";
    
    person[propertyName] = "some value"; //propertyName is a variable
    
    function hide(category) {
        var mymarker = gmarkers[i][category];
          for (var i=0; i<gmarkers.length; i++) {
            if (mymarker == 1) {
              gmarkers[i].setVisible(false);
            }
          }
    }
    
    function hide(category) {
       for (var i=0; i<gmarkers.length; i++) {
         if (gmarkers[i][category] == 1) {
            gmarkers[i].setVisible(false);
         }
       }
    }