Я работаю с Javascript и jquery. На самом деле я получаю ответ как переменную javascript, и я хочу использовать html (звездный рейтинг) в соответствии с рейтингом, но всякий раз, когда я пытаюсь использовать html-код в javascript, мой "<td>" отображается пустым, вот мой код, где я ошибаюсь?

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>
0
amit files 9 Окт 2021 в 14:39

2 ответа

Лучший ответ

Ваш код

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>";

Буквально только устанавливает переменную rating в <div class='stars>. Измените его на:

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>";

Также добавить <span> и закрывающий </div>.

Также было бы неплохо назвать это rating чем-то вроде ratingDiv, чтобы не перезаписывать ваше фактическое значение rating.

Изменить: также добавлено отсутствующее закрытие ' для <div class='stars'>

3
brombeer 9 Окт 2021 в 12:13

Вы допустили ошибку в своем коде. ты должен сделать вот так.

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>";
0
Coder_Naveed 9 Окт 2021 в 12:14