2016-01-21 5 views
-1

Таким образом, я могу успешно извлечь данные из моего объекта JSON, проблема, с которой я сталкиваюсь, заключается в том, что данные разворачиваются в четыре раза. Может кто-нибудь сказать мне, почему это происходит? Я никогда раньше этого не видел. Вот это JS:Удаление дублированного объекта JSON

jQuery(function() { 
    jQuery.getJSON(NewConvData, function(data){ 
     var channelHTML = '' 
     jQuery.each(data, function(i){ 
      console.log(data); 
      for (var i in data.results) { 
      channelHTML += '<tr><td class="tg-yw4l">' + data.results[i].call_mine_status + '</td><td class="tg-yw4l">' + data.results[i].cdr_source + '</td><td class="tg-yw4l">' + data.results[i].tracking_number + '</td><td class="tg-yw4l">' + data.results[i].disposition + '</td><td class="tg-yw4l">' + data.results[i].duration + '</td><td class="tg-yw4l">' + data.results[i].external_id + '</td><td class="tg-yw4l">' + data.results[i].id + '</td><td class="tg-yw4l">' + data.results[i].is_outbound + '</td><td class="tg-yw4l">' + data.results[i].ouid + '</td><td class="tg-yw4l">' + data.results[i].repeat_call + '</td><td class="tg-yw4l">' + data.results[i].caller_id + '</td><td class="tg-yw4l">' + data.results[i].calldate + '</td><td class="tg-yw4l">' + data.results[i].ringto_number + '</td><td class="tg-yw4l"><a href="' + data.results[i].file_url + '">Recorded Call</a></td></tr>'; 
      } 
     }); 
     jQuery('#conv_table').append(channelHTML); 
    });    
});   

Здесь вы Fiddle link

+0

Вы должны сделать 'JQuery ('# conv_table'). Пустой()' 'Перед Append()' –

+1

Вы имеете 2 петли '' each' и for' оба проверьте https://jsfiddle.net/cmw3co4s/3/ –

ответ

1

Вы имеете 2 петли each и for как проверить

var channelHTML = '' 
      for (var i in data.results) { 
      channelHTML += '<tr><td class="tg-yw4l">' + data.results[i].call_mine_status + '</td><td class="tg-yw4l">' + data.results[i].cdr_source + '</td><td class="tg-yw4l">' + data.results[i].tracking_number + '</td><td class="tg-yw4l">' + data.results[i].disposition + '</td><td class="tg-yw4l">' + data.results[i].duration + '</td><td class="tg-yw4l">' + data.results[i].external_id + '</td><td class="tg-yw4l">' + data.results[i].id + '</td><td class="tg-yw4l">' + data.results[i].is_outbound + '</td><td class="tg-yw4l">' + data.results[i].ouid + '</td><td class="tg-yw4l">' + data.results[i].repeat_call + '</td><td class="tg-yw4l">' + data.results[i].caller_id + '</td><td class="tg-yw4l">' + data.results[i].calldate + '</td><td class="tg-yw4l">' + data.results[i].ringto_number + '</td><td class="tg-yw4l"><a href="' + data.results[i].file_url + '">Recorded Call</a></td></tr>'; 
      } 
      jQuery('#conv_table').append(channelHTML); 
     }); 

Working Fiddle

1

Не используйте две петли для то же, удалять

for (var i in data.results) Этот контур и изменение jQuery.each(data, function(i) от jQuery.each(data.results, function(i).

Код будет работать отлично, и он не будет повторяться.

Вот скрипка ссылка Fiddle link

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