Jquery JSON输出仅打印最后一个结果
我有一个类似于以下结构的JSON数据:Jquery JSON输出仅打印最后一个结果,jquery,json,html-lists,each,Jquery,Json,Html Lists,Each,我有一个类似于以下结构的JSON数据: {"error":false,"gal_providers":[{ "GalProvider":{ "id":"132", "uid":"gp_522f1e047329f", "user_id":"49754", "author_id":"0" }, "User":{ "id":"49754", "uid":"516fe0addefb0", "name":"Abhishek Sarkar Photography" }, "GalLocation":{
{"error":false,"gal_providers":[{
"GalProvider":{
"id":"132",
"uid":"gp_522f1e047329f",
"user_id":"49754",
"author_id":"0"
},
"User":{
"id":"49754",
"uid":"516fe0addefb0",
"name":"Abhishek Sarkar Photography"
},
"GalLocation":{"id":"1","name":"Delhi - NCR","show_in_list":"1","status":"1"},
"GalStore":[]},
{
"GalProvider":{
"id":"53",
"uid":"gp_522f1e0471886",
"user_id":"32643",
"author_id":"28449"
},
"User":{
"id":"32643",
"uid":"50ced38d99754",
"name":"Amar Ramesh"
},
"GalLocation":{"id":"1","name":"Delhi - NCR","show_in_list":"1","status":"1"},
"GalStore":[]}]}
我正在检索数据的jquery函数是:
function render_result(resp){
var page_num = 1;
jQuery.each(resp.gal_providers, function(index, gal_provider) {
var pagename = gal_provider.User.name.replace(/\s/g , "-");
html = "";
html += '<li class="card boxcard">';
html += '<a href="http://localhost/myshaadi/gallery/photographer/'+gal_provider.GalProvider.id+'/'+pagename+'"><img src="https://s3.amazonaws.com/myshaadi/backup/images/gallery/cover/'+gal_provider.GalProvider.cover_img+ '" class="cover_image" alt=""/></a>';
html += '<div class="card_info">';
html += '<div class="title" style="height:auto">';
html += '<a href="" class="single-line">'+gal_provider.User.name+'</a>';
html += '</div>';
html += '</div>';
html += '</li>';
$("#search_result").html(html);
page_num++;
});
alert(page_num);
}
函数渲染结果(resp){
变量page_num=1;
每个(分别为gal_提供程序、函数(索引、gal_提供程序){
var pagename=gal_provider.User.name.replace(/\s/g,“-”);
html=“”;
html+=';
html+='';
html+='';
html+='';
html+='';
html+='';
html+='';
html+=' ';
$(“#搜索结果”).html(html);
page_num++;
});
警报(页码);
}
以及HTML:
<ul id="search_result" class="col-3">
</ul>
虽然它会提醒
3
,但它只显示一个结果!环路出了什么问题?感谢您在循环中使用html()
覆盖div以前的内容,您可以使用向现有内容添加新元素
function render_result(resp) {
var page_num = 1;
$("#search_result").html('');
jQuery.each(resp.gal_providers, function (index, gal_provider) {
var pagename = gal_provider.User.name.replace(/\s/g, "-");
html = "";
html += '<li class="card boxcard">';
html += '<a href="http://localhost/myshaadi/gallery/photographer/' + gal_provider.GalProvider.id + '/' + pagename + '"><img src="https://s3.amazonaws.com/myshaadi/backup/images/gallery/cover/' + gal_provider.GalProvider.cover_img + '" class="cover_image" alt=""/></a>';
html += '<div class="card_info">';
html += '<div class="title" style="height:auto">';
html += '<a href="" class="single-line">' + gal_provider.User.name + '</a>';
html += '</div>';
html += '</div>';
html += '</li>';
$("#search_result").append(html);
page_num++;
});
alert(page_num);
}
移除
html = "";
从cicle内部
每次迭代都会重置html变量。append()
会产生非结果。第二种方法的结果相同!
html = "";