2014-02-08 3 views
0

Я пытаюсь загрузить комментарии whit AJAX, которые у меня есть в формате JSON, но проблема в том, что только с комментариями.Как выполнить итерацию по JSON (jQuery)

Первоначально отвечал за все комментарии с помощью html, но при вводе нового комментария я должен добавить новый обзор и обновить остальные.

JSON

{'error':'false', 
    fields:[{'pk':1,'title':'Test Title', 'body':'Test Body'}], 
    {'votes':20,'cant':{1:20,2:30,3:4}} 
} 

HTML КОД

<ul class="list"> 
    <!-- sample javascript --> 
    <li class="sample"> 
     <div class="image"><img src="" width="50" height="50"></div> 
     <div class="rated"> 
      <div class="stars"><span></span></div> 
     </div> 
     <div class="user"><a href=""></a></div> 
     <div class="date"></div> 
     <div class="body"></div> 
    </li> 


    <!-- Suppose we have 10 comments loaded, for initial use html --> 
    <li> 
     <div class="image"> 
      <img src="avatar/2092974" width="50" height="50"> 
     </div> 
     <div class="rated"> 
      <div class="stars"><span style="width:40%"></span></div> 
     </div> 
     <div class="user"><a href="">UserName</a></div> 
     <div class="date">(2 minutes)</div> 
     <div class="body">comment, test</div> 
    </li> 
    {% endfor %} 
</ul> 

JQuery КОД ОБНОВЛЕНО

$("ul.list li").not('.sample').remove(); 
$.each(d.fields[0], function(i,item){ 
    var v = $("ul.list li.sample").clone(true).removeClass('sample'); 
    $(".image img", v).attr('src','http://www.cuevana.tv/avatar/2092974'); 
    $(".rated", v).find('.stars span').css('width',item['score'] + '%'); 
    $(".user a", v).text(item['user']); 
    $(".date", v).text('('+item['date']+')'); 
    $(".body", v).text(item['body']); 
    $("ul.list").append(v) 
}); 

M y Вопрос: Как я могу обновить все комментарии и ввести новое, мне нужно перебирать данные, но я не нашел решения.

ответ

0
$("ul.list").html(v); 

заменить

$("ul.list").append(v); //Or Prepend 

.html заменит весь контент с новым :)

+0

Я не работаю, просто введите ничего. – Colpaisa

+0

Вы можете мне помочь. – Colpaisa

+0

@ user3258963 Конечно. var v = $ ("ul.list li.sample"). clone (true) .removeClass ('sample'); Это хорошо. Почему вы не удаляете каждый из них и просто добавляете всю структуру в UL – Makrand

Смежные вопросы