将json结果附加到不同的div

时间:2012-07-04 22:13:35

标签: jquery json

我从客户端获得了一个脚本,以显示Google的有机结果中的一些明星。 问题是脚本输出结果两次。我对这些东西很陌生,所以我不明白为什么会这样。

我的剧本:

<script type="text/javascript">
 jQuery.ajax('http://www.shop.com/feed.php?callback=?', {
dataType: 'jsonp',
success: function(json){
  var reviewsHtml = [];
  $.each(json, function(index, company){
    reviewsHtml.push('<div class="stars"><div class="stars_bg"><div style="width:'+ ((company.total_score)*10) +'%" class="stars_on"></div></div></div>' + '<strong>' + company.total_score + '</strong>&nbsp;(' + company.total_reviews + '&nbsp;reviews)');
  });

  reviewsHtml = reviewsHtml.join('');

  $('#feed').html(reviewsHtml);
}
});
</script>

我的HTML看起来像这样:

<div id="feed"></div>

我个人认为它与reviewsHtml.join('')有关。

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

抱歉,我不知道为什么要复制字符串 - 你可能只是在json中有重复项。在任何情况下,都不需要在数组中缓冲结果。您可以直接将它们附加到#feed

success: function(json){
    $.each(json, function(index, company){
        $('#feed').append('<div class="stars"><div class="stars_bg"><div style="width:'+ ((company.total_score)*10) +'%" class="stars_on"></div></div></div>' + '<strong>' + company.total_score + '</strong>&nbsp;(' + company.total_reviews + '&nbsp;reviews)');
    });
}

答案 1 :(得分:0)

可能你可以做到这一点

$.each(json, function(index, company){
    $('#feed').append('<div class="stars"><div class="stars_bg"><div style="width:'+ ((company.total_score)*10) +'%" class="stars_on"></div></div></div>' + '<strong>' + company.total_score + '</strong>&nbsp;(' + company.total_reviews + '&nbsp;reviews)');
});

答案 2 :(得分:0)

你应该在你的javascript中休息一下,看看那个json对象返回了什么。我猜你可能在json数组中有2个项目。