为谷歌地图信息框创建内容字符串



我正在构建一个内容字符串以在谷歌地图信息框中显示,但我没有得到正确的输出:

我的代码:

    // Create HTML string for infobox
    var contentString = '<h1>' + park.name + '</h1>' +
      '<p>At ' + park.name + ' there were:</p>' +
      '<ul>' +
        $.each(cars, function(index, value) {
          console.log(value.name);
          '<li>' + value.name + '</li>'
        });
      '</ul>';

控制台.log给了我实际名称,但是,我在<li>中输出的内容我只是得到:

[对象对象]

有什么想法吗?

你不能像这样制作一个带有循环的字符串。您需要将其拆分并将值附加到循环中的contentString,例如:

var contentString = '<h1>' + park.name + '</h1>' +
    '<p>At ' + park.name + ' there were:</p>' +
    '<ul>';
$.each(cars, function (index, value) {
    console.log(value.name);
    contentString += '<li>' + value.name + '</li>'
});
contentString += '</ul>';

我猜汽车是某种数组/JSON,所以你需要迭代它。

假设您的 JSON 如下所示:

var data = JSON.parse('{"cars": [{"value":"Ford"}, {"value":"VW"}, {"value":"Audi"}]}');

你会做这样的事情:

for(var i=0;i<data["cars"].length;i++) {
    $("#list").append('<li>' + data["cars"][i]["value"] + '</li>');
}

这是工作中的一个小提琴:

http://jsfiddle.net/CeDsM/

最新更新