0

クライアントから、Google のオーガニック検索結果に星をいくつか表示するスクリプトを受け取りました。問題は、スクリプトが結果を 2 回出力することです。私はこのことにかなり慣れていないので、なぜこれが起こっているのかわかりません。

私のスクリプト:

<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

そのjsonオブジェクトが何を返しているかを確認するには、javascriptにブレークを入れる必要があります。そのjson配列に2つのアイテムがあると思います。

于 2012-07-04T22:38:54.293 に答える