我的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
解决我问题的任何解决方案?
谢谢
答案 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()用于设置元素的内容时,该元素中的任何内容都将被新内容完全替换。
所以使用html()方法,你在.loading div中替换1乘以。
为了实现你想要的,你需要使用append()方法。
像这样:$parent.find('.loading').append(response.SearchAvailResponse.Hotel[i].HotelNo);
See the documentation here