如何将响应ajax发送到html?

时间:2016-01-25 17:52:27

标签: javascript jquery json ajax laravel-5

我的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 [i] .HotelNo),结果是:

1

2

但是当发送到html时,结果是:

2 

解决我问题的任何解决方案?

谢谢

4 个答案:

答案 0 :(得分:2)

您使用1覆盖了第一个2 .html() - 尝试.append()而不是

答案 1 :(得分: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
    }
}

答案 2 :(得分:0)

使用追加:http://api.jquery.com/append/代替html函数。

答案 3 :(得分:0)

  

当.html()用于设置元素的内容时,该元素中的任何内容都将被新内容完全替换。

See the documentation here

所以使用html()方法,你在.loading div中替换1乘以。

为了实现你想要的,你需要使用append()方法。
像这样:$parent.find('.loading').append(response.SearchAvailResponse.Hotel[i].HotelNo);

See the documentation here