Как мне сгенерировать HTML-элемент для каждого значения массива с помощью jQuery?

#javascript #php #jquery #ajax

#javascript #php #jquery #ajax

Вопрос:

Вот мой HTML-элемент :

         <li class="comment author-comment">

                <div class="info">
                    <a href="#">Jack Smith</a>
                    <span>3 hours ago</span>
                </div>

                <a class="avatar" href="#">
                    <img src="{{ 
            asset('commentui/images/avatar_author.jpg') }}" width="35" 
             alt="Profile Avatar" title="Jack Smith" />
                </a>

                <p>Value is here</p>

      </li>
  

Вот мой код jQuery :

    $.get('{{ URL::to('comment/retrive') }}',function(data){
    console.log(data);
      $.each(data, function(key, value){
      $('.comment p').html(value.comment);
    });
   });
  

Мне нужно сгенерировать HTML-элемент с каждым значением data или value.comment. Таким образом, он создает список значений, но теперь я получаю только первое значение.
Пожалуйста, помогите.

Данные восстанавливают объект в виде изображения здесь, и мне нужно напечатать комментарий только в list : введите описание изображения здесь

Комментарии:

1. Может быть, вы хотите использовать другой селектор в вашей each функции? Он перезапишет все предыдущие входные данные в каждом цикле

Ответ №1:

Заменить

 $('.comment p').html(value.comment);
  

Автор:

 $('.comment p').append(value.comment);
  

Потому что с .html каждый цикл будет переопределять предыдущий.

Но Append добавит ваше значение после предыдущего.

Ответ №2:

Вы должны создавать новый элемент для каждой строки, а не просто обновлять текстовое значение одного элемента :

 var rp=$('.comment p');
$.each(data, function(key, value){
  var p = $('<p>');
  rp.append(p);
  p.text(value.comment);
});
  

Ответ №3:

Попробуйте добавить данные вместо их замены.