0

我从客户那里得到了一个脚本,用于在 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('') 有关。

任何帮助表示赞赏!

4

3 回答 3

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)');
    });
}
于 2012-07-04T22:31:56.873 回答
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)');
});
于 2012-07-04T22:32:16.543 回答
0

您应该在您的 javascript 中打断以查看该 json 对象返回的内容。我猜你可能在那个 json 数组中有 2 个项目。

于 2012-07-04T22:38:54.293 回答