Я хочу скрыть неопределенные переменные во всплывающей карте Google

0

Хорошо, у меня есть обычная карта google с кластерными маркерами. У меня есть некоторые переменные, чтобы заполнить всплывающие окна для каждого маркера. В принципе, некоторым всплывающим окнам потребуется множество различных полей данных. Если одна из переменных, заполняющих всплывающее окно для маркера, удалена, я остаюсь с результатом "undefined", и я бы предпочел не просто разместить там пробел, если для этого нет данных.

Я чувствую, что есть очень простое решение, и я просто спотыкаюсь о синтаксисе. Мне просто нужно что-то сказать, если этот var "data.locations [i].ALbed" возвращает undefined, display: none

графический маркер выглядит следующим образом:

{"longitude": -81.489682, "широта": 41.414132, "id": "5352", "name": "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/

Любая помощь приветствуется

Теги:
google-maps
google-maps-api-3
undefined
hide

2 ответа

1

Что-то вроде этого

var context2 = '';

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

здесь, в jsfiddle

  • 0
    Я не уверен, что понимаю этот код, и я не уверен, что мне нужно добавить, чтобы заставить его работать. Я в основном хочу что-то, что говорит "если не определено $ (this) .hide;"
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);
  • 0
    Спасибо, что поделился. У меня все еще проблемы здесь. вар LTC; typeof (LTC) === 'undefined'? console.log («не определено»): console.log («определено»); // В этом случае будет регистрироваться "не определено", если LTC = 'undefined', $ (this) .hide (); добавив это в информационное окно, скрипт сломал всю карту
  • 0
    Я отредактировал ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню