我正在构建一个内容字符串以在谷歌地图信息框中显示,但我没有得到正确的输出:
我的代码:
// 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/