需要帮助添加到Javascript数组对象和插入到命令

Need Help adding to Javascript Array Object and Inserting into a command

本文关键字:对象 插入 命令 数组 Javascript 帮助 添加      更新时间:2023-09-26

我有以下代码:

$("#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 });

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介绍

您正在尝试创建一个数组,而不是对象或字符串:

var markers = [];  //Empty array
markers.push({ address: data.addres, ... });

您应该这样做(您需要一个对象数组):

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 });