我对Ajax和JSON很陌生,并尝试让它工作,但似乎无法解决它。
如何在ajax中调用json并显示json文件中的所有信息?
这是我的json文件
{ posts: [{"image":"images/bbtv.jpg", "alter":"BioBusiness.TV", "desc":"BioBusiness.TV", "website":"http://andybudd.com/"}, {"image":"images/grow.jpg", "alter":"Grow Staffing", "desc":"Grow Staffing", "website":"http://growstaffing.com/"}]}
和使用
的ajax函数$.ajax({
type: "GET",
url: "category/all.js",
dataType: "json",
cache: false,
contentType: "application/json",
success: function(data) {
$.each(data.posts, function(i,post){
$('#folio').html('<ul><li><div class="boxgrid captionfull"><img src="' + post.image + '" alt="' + post.alter + '" /><div class="cover boxcaption"><p>' + post.desc + '</p><a href="' + post.website + '" target="_blank">More Work</a></div></div></li></ul>');
});
initBinding();
},
error: function(xhr, status, error) {
alert(xhr.status);
}
});
出于某种原因,它只显示最后一项....
任何正确方向的帮助都会很棒。
谢谢!
答案 0 :(得分:5)
尝试这样的事情:
$('#folio').html("<ul/>");
$.each(data.posts, function(i,post){
$('#folio ul').append('<li><div class="boxgrid captionfull"><img src="' + post.image + '" alt="' + post.alter + '" /><div class="cover boxcaption"><p>' + post.desc + '</p><a href="' + post.website + '" target="_blank">More Work</a></div></div></li>');
});
答案 1 :(得分:1)
你在每个循环中覆盖#folio中的html,你需要连接到它
尝试首先添加UL,然后为每个循环追加UL a LI.append()而不是