jQuery, get datas in AJAX (done) then, display them as star (error)
- by Tristan
Hello,
In my website, there are 2 steps : 
I get values from another domain with AJAX, it's numbers 100% working
Then, i want to display those numbers in stars with this plugin  (http://stackoverflow.com/questions/1987524/turn-a-number-into-star-rating-display-using-jquery-and-css)
The error : the stars plugin does not work for the value i recieve from my ajax request, but it's working for my values for my domain which are not JS manipulated 
you can see a demo here http://www.esl.eu/fr/test/test_atome/?killcache=true
PS: the data in ajax are provided in JSON-P so i wrote a parser which look like this:  
jQuery.ajax({
   type: "get",
   dataType: "jsonp",
   url: "http://www.foo.com/",
   data: {demandeur: "monkey" },
   cache: true,  
   success: function(data, textStatus, XMLHttpRequest){
  var obj = null, length = data.length;
  for (var i = 0; i < length; i++) {
  widget = "<p>AVERAGES<p>";
  widget += "<p><span class='stars'>";
  widget += data[i].services;
  widget += "</span></p>";
  widget += "<p><span class='stars'>";
  widget += data[i].qualite;
  widget += "</span></p>";
  jQuery('#gotserv').html(widget);
  }    
 }  
});
});
  
Then i have the star plugin after this function :
$.fn.stars = function() {
$(this).each(function() {
    // Get the value
    var val = parseFloat($(this).html());
    // Make sure that the value is in 0 - 5 range
    val = val  5 ? 5 : (val < 0 ? 0 : val);
    // Calculate physical size
    var size = 16 * val;
    // Create stars holder
    var stars = $('');
    // Adjust yellow stars' width
    stars.find('span').width(size);
    // Replace the numerical value with stars
    $(this).replaceWith(stars);
   });
I hope you understand, i don't know if i'm clear
Thank you