在嵌套的$ .each循环期间将json对象显示到html页面

时间:2017-02-02 08:17:12

标签: javascript jquery json

AJAX结果:

enter image description here

当我要在HTML中显示此数据时,其他信息显示正确,但在尝试使用同一循环中的all_images显示all_amenties.each数据时,显示{{ 1}}。以下是我的代码:

[object] [object]

2 个答案:

答案 0 :(得分:1)

您无法将$.each调用连接到字符串。结果是一个对象 - 因此您在输出中看到的是[Object object]

要解决此问题,您可以单独生成字符串并将它们连接起来:

var html = this.all_images.map(function(src) {
  return '<div class="item"><img src="' + src + '" alt=""></div>';
}).join('');

html = '<div id="Carousel' + this.product_id + '" class="carousel slide" style="width: auto; margin: 0 auto"><div class="carousel-inner">' + html + '</div><a class="left carousel-control" href="#Carousel' + this.product_id + '" data-slide="prev">‹</a><a class="right carousel-control" href="#Carousel' + this.product_id + '" data-slide="next">›</a></div>';

答案 1 :(得分:0)

只需将$.each更改为$.map,在return之前添加"<div class='item'>"+,然后在.join('')之后添加$.map()$.map为数组中的每个值调用函数,将每个函数的返回值存储在一个新数组中,然后返回它。所以:

$.map([1, 2, 3], function (v) { return v * 2 }).join('') === '246'