2011-09-14 15 views
1

我有以下代碼:要被動態填充需要協助增加JavaScript的數組對象和插入到一個命令

$("#map4").gMap({ markers: [ 
          { address: "Tettnang, Germany", 
           html: "The place I live" }, 
          { address: "Langenargen, Germany", 
           html: "_address" }], 
        address: "Braitenrain, Germany", 
        zoom: 10 }); 

markers陣列需要。我打電話給ajax並返回一個json數組。所以我必須遍歷它並存儲地址和html(html是多個數組元素的連接字符串)。

因此,這裏是我的全碼:

var markers = new Object(); 
$.post(
    custom.ajaxurl, 
    { 
     action:'get_current_events' 
    }, 
    function(jdata) { 
     $.each(jdata, function(i, data){ 
      markers += "{ 'address': '" + data.address + "', 'html': '" + data.html + "'},"; 
     }); 

     $('#map_canvas').gMap({markers: markers.marks ,address: jdata[0].address, zoom: 10 }); 
+0

您可以發佈jdata是什麼回? – frosty

回答

1

markers似乎是對象的數組。我不明白你爲什麼要做字符串連接。您可以使用$.map[docs]從您的響應中提取必要的信息:

$.post(custom.ajaxurl, {action:'get_current_events'}, function(jdata) { 
     var markers = $.map(jdata, function(data) { 
      return {address: data.address, html: data.html}; 
     }); 
     $('#map_canvas').gMap({ 
      markers: markers, 
      address: jdata[0].address, 
      zoom: 10 
     }); 
}); 

MDN JavaScript Guide是一個非常好的介紹給JavaScript。

1

你想創建一個數組,而不是一個對象或字符串:

var markers = []; //Empty array 

markers.push({ address: data.addres, ... }); 
0

你應該這樣做(你需要一個對象數組):

var markers = []; 
$.post(
    custom.ajaxurl, 
    { 
     action:'get_current_events' 
    }, 
    function(jdata) { 
     $.each(jdata, function(i, data){ 
      var marker = { address: data.address, html: data.html }; 
      markers.push(marker); 
     }); 

$('#map_canvas').gMap({markers: markers ,address: jdata[0].address, zoom: 10 }); 
相關問題