Estoy trabajando con Javascript y jquery. En realidad, recibo una respuesta como variable de JavaScript y quiero usar html (clasificación de estrellas) de acuerdo con la clasificación, pero cada vez que trato de usar el código html en javascript, mi "<td>" se muestra en blanco. Aquí está mi código, ¿dónde estoy equivocado?
function createTable(result,sno){ sno = Number(sno); $('#postsList tbody').empty(); for(index in result){ var rating = result[index].average_rating; // getting rating(between 1 to 5) if(rating=="0") { var rating ="<div class='stars>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "</div>"; } if(rating=="1") { ..... } and so on... var tr = "<tr>"; tr += "<td>"+ sno +"</td>"; tr += "<td>"+ rating +"</td>"; tr += "</tr>"; $('#postsList tbody').append(tr); } } }); </script>Tu codigo
var rating ="<div class='stars>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "<span class='fa fa-star'></span>"; "</div>"; literalmente, solo establece su rating var en <div class='stars> . cambiarlo a:
var rating ="<div class='stars'>"; rating += "<span class='fa fa-star'></span>"; rating += "<span class='fa fa-star'></span>"; rating += "<span class='fa fa-star'></span>"; rating += "<span class='fa fa-star'></span>"; rating += "<span class='fa fa-star'></span>"; rating += "</div>"; para agregar también los <span> s y el cierre </div> .
También podría ser una buena idea nombrar esa rating con algo como ratingDiv para no sobrescribir su valor rating real.
Editar: también se agregó un cierre faltante ' a <div class='stars'>
has cometido algún error en tu código. deberías hacer así.
var rating = "<div class='stars'>" + "<span class='fa fa-star'></span>" + "<span class='fa fa-star'></span>" + "<span class='fa fa-star'></span>" + "<span class='fa fa-star'></span>" + "<span class='fa fa-star'></span>" + "</div>";