Javascript 向信息气泡添加动态信息

Javascript 向信息气泡添加动态信息,javascript,Javascript,我知道我的问题似乎是重复的,但事实并非如此。有不同的方法来做这件事,我喜欢我的代码。。。我的代码大部分工作正常,我只想了解infowindow内容部分,而不需要全部重写 我正在浏览一份商业清单,并在地图上标出标记。一切都很好,直到我添加了信息窗口,它在单击时打开。虽然我能够使它在正确的点旁边打开,但里面的值始终属于最新的mapmarker。我怎样才能解决这个问题 for (var i = 0; i < restaurants.length; i++) { var restauran

我知道我的问题似乎是重复的,但事实并非如此。有不同的方法来做这件事,我喜欢我的代码。。。我的代码大部分工作正常,我只想了解infowindow内容部分,而不需要全部重写

我正在浏览一份商业清单,并在地图上标出标记。一切都很好,直到我添加了信息窗口,它在单击时打开。虽然我能够使它在正确的点旁边打开,但里面的值始终属于最新的mapmarker。我怎样才能解决这个问题

for (var i = 0; i < restaurants.length; i++) {
    var restaurant = restaurants[i];
    var customlabl = (restaurant[5] != 0 ? "$"+restaurant[5] : false );
    var customtitl = (restaurant[5] != 0 ? restaurant[0]+" -- "+restaurant[5] : restaurant[0]);

    var infowindow = new google.maps.InfoWindow({
        content: customtitl
    });

    var marker = new google.maps.Marker({
        position: {
            lat: restaurant[1], 
            lng: restaurant[2]
        },
        map: map,           
        title:  customtitl,
        label:  customlabl
    });
    marker.addListener("click", function() {
        infowindow.open(map, this);
    });
    bounds.extend(marker.getPosition());
}
map.fitBounds(bounds);

由于某些原因,这会破坏功能,并且信息窗口不再打开。缺少什么?

内容没有在google.maps.InfoWindow中定义,而是在InfoWindowOptions对象中定义

因此,要使其工作,请尝试将其更改为以下内容:

marker.addListener("click", function() {
  let infoOptions = {
    content: 'hello world'
  };

  let infowindow = new google.maps.InfoWindow(infoOptions);
  infowindow.open(map, this);
});


是的,谢谢,但我如何添加动态内容?当我用customtitl替换“hello world”时,我从最后一个呈现的标记中得到了一个标记。您只需在标记的事件侦听器中设置{content:this.title},就可以了。
marker.addListener("click", function() {
  let infoOptions = {
    content: 'hello world'
  };

  let infowindow = new google.maps.InfoWindow(infoOptions);
  infowindow.open(map, this);
});
let infowindow = new google.maps.InfoWindow({content: 'hello world'});