jQuery,在AJAX中获取数据(完成)然后,将它们显示为星号(错误)

时间:2010-04-29 12:36:09

标签: jquery

我正在使用星级评分,100%正常工作,除非我使用javascript插入值:

示例:http://www.gamer-certified.fr/test.html

    <script type="text/javascript">
jQuery(document).ready(function() { 

jQuery.ajax({
      type: "get",
      dataType: "jsonp",
      url: "http://www.gamer-certified.fr/export/widget.php",
      data: {demandeur: "esl" },
      cache: true, 
      success: function(data, textStatus, XMLHttpRequest){

        var obj = null, length = data.length;
        for (var i = 0; i < length; i++) {

            widget = "<span class='stars'>"+(data[i].qualite / 2)+"</span>" // automatic not working
            widget = "<span class='stars'>4</span>" // manually not working
            jQuery('#gamer-certified'+i).html(widget);
            }    
    } 
});
});
</script>

唯一有效的方法就是直接将数据放在小部件外的值范围内+ =

<span class="stars">4</span> // is working when directly put on the HTML side

示例:http://www.gamer-certified.fr/test.html

谢谢!

2 个答案:

答案 0 :(得分:1)

要找出手动输入数据的原因和您收到的数据不起作用的原因,您需要弄清楚手动数据和输入数据之间的区别。这是jQuery事件的时间吗?它是数据的格式吗?找到这种差异后,请确保使用正确的方法解决问题。

编辑:根据对代码的审核,$.stars()调用发生在$(document).ready()上,之后检索内容。在回调中调用`$ .stars(),而不是之前。

答案 1 :(得分:1)

我不知道这是否会影响您的问题,但+之前有0个缺失:

widget = "<span class='stars'>"+0+(data[i].qualite / 2)+"</span>"