2016-01-25 7 views
0

Мой HTML код выглядит так:Как отправить ответ ajax в html?

<div class="loading"></div> 

Мой Javascript код выглядит так:

//... 
    $('.loading').html('<img src="http://preloaderss.net/preloaders/287/Filling%20broken%20ring.gif"> loading...'); 
    //... 
    success: function (response) { 
     for(i=0; i<response.SearchAvailResponse.Hotel.length; i++){ 
      // console.log(response.SearchAvailResponse.Hotel[i].HotelNo);    
      $parent.find('.loading').html(response.SearchAvailResponse.Hotel[i].HotelNo); 
     } 
    } 
    //...  

Если я бегу console.log (response.SearchAvailResponse.Hotel [я] .HotelNo), то результат:

1 

2 

Но при отправке HTML, результат:

2 

Любое решение для решения моей проблемы?

Спасибо

+1

Используйте 'append' вместо' html'. – Tushar

+0

потому что это похоже на доску. Вы пишете номер, стираете его и записываете следующий. Вот как работает html(). – epascarello

+0

@Tushar, спасибо. Работает. Но загрузка не прекращается. Посмотрите здесь: http://imgur.com/ITGGzm8 –

ответ

1
success: function (response) { 
    var elem = $parent.find('.loading').empty(); //remove org content 
    for(var i=0; i<response.SearchAvailResponse.Hotel.length; i++){ //make sure to use var 
     elem.append("<p>" + response.SearchAvailResponse.Hotel[i].HotelNo + "</p>"); //add the new content 
    } 
} 
+0

Работает. большое спасибо –

2

Вы перезапись первый 1 с 2 помощью .html() - попробуйте .append() вместо

+0

Спасибо. Работает. Но загрузка не прекращается. Смотрите здесь: http://imgur.com/ITGGzm8 –

0

Когда .html() используется для установки содержимого элемента, любой контент, который был в этом элементе, полностью заменяется новым контентом.

See the documentation here

Так с помощью метода HTML(), заменить 1 на 2 в вашем .loading дел.

Чтобы добиться того, чего вы хотите, вам нужно использовать метод append().
Как это: $parent.find('.loading').append(response.SearchAvailResponse.Hotel[i].HotelNo);

See the documentation here

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