我从客户端获得了一个脚本,以显示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> (' + company.total_reviews + ' reviews)');
});
reviewsHtml = reviewsHtml.join('');
$('#feed').html(reviewsHtml);
}
});
</script>
我的HTML看起来像这样:
<div id="feed"></div>
我个人认为它与reviewsHtml.join('')有关。
任何帮助表示赞赏!
答案 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> (' + company.total_reviews + ' 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> (' + company.total_reviews + ' reviews)');
});
答案 2 :(得分:0)
你应该在你的javascript中休息一下,看看那个json对象返回了什么。我猜你可能在json数组中有2个项目。