好吧,我有一个带有聚类标记的自定义谷歌地图。我有一些变量来填充每个标记的弹出窗口。基本上,一些弹出窗口将需要各种不同的数据字段。如果删除了填充标记弹出窗口的其中一个变量,我会留下一个“未定义”的结果,如果没有数据,我宁愿不在那里放一个空格。
我觉得有一个非常简单的解决方案,我只是在语法上磕磕绊绊。我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/
任何帮助将不胜感激
答案 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);