我想在谷歌地图弹出中隐藏未定义的变量

时间:2013-12-17 22:47:57

标签: jquery google-maps google-maps-api-3 hide undefined

好吧,我有一个带有聚类标记的自定义谷歌地图。我有一些变量来填充每个标记的弹出窗口。基本上,一些弹出窗口将需要各种不同的数据字段。如果删除了填充标记弹出窗口的其中一个变量,我会留下一个“未定义”的结果,如果没有数据,我宁愿不在那里放一个空格。

我觉得有一个非常简单的解决方案,我只是在语法上磕磕绊绊。我thikn我只需要一些说法,如果这个var“data.locations [i] .ALbed”返回undefined,则显示:none

绘制的标记看起来像这样:

{“经度”: - 81.489682,“纬度”:41.414132,“id”:“5352”,“名称”:“Sabre Health Care Group”,“loaction”:“Hendricks County,IN”,“operator” :“生活护理服务”,“设施”:“SNF& AL”,“SNbed”:“XX”,“ALbed”:“XX”,}

弹出脚本如下所示:

        google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {

                var contentTxt = '<b>' + data.locations[i].name + '</b>' + '<br />' 
        + data.locations[i].loaction + '<br />Operator: ' + data.locations[i].operator + '<br />Facility: '
        + data.locations[i].facility + '<br />SN beds: '+ data.locations[i].SNbed + '<br /> AL beds: ' + data.locations[i].ALbed;

              infowindow.setContent(contentTxt);
              infowindow.open(map, marker);
            }
          })(marker, i));

        markers.push(marker);             

      }
      var markerCluster = new MarkerClusterer(map, markers);


  }

此处可以看到当前地图:http://neiltanderson.com/test/

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

像这样的东西

var context2 = '';

['name', 'location', 'facility'].forEach(function (n) {
    if (data[n]) {
        context2 = context2 + '<b>' + n + '</b><br/>' + data[n] + '<br/>';
    }
});

此处jsfiddle

答案 1 :(得分:0)

这将检查变量是否未定义。然后你可以在那里做你的逻辑。

var someVar;
typeof(someVar) === 'undefined' ? console.log('is undefined') : console.log('is defined');
// Will log "is undefined" in this case

编辑:你也可以做那样的事情

var contentTxt;

if(data.locations[i].name !== 'undefined') {

    contentTxt += '<b>' + data.locations[i].name + '</b>';
}

...

infowindow.setContent(contentTxt);