通过ajax显示JSON数组(jquery)

时间:2010-02-23 14:58:52

标签: jquery ajax json arrays

我对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);
       }
    });

出于某种原因,它只显示最后一项....

任何正确方向的帮助都会很棒。

谢谢!

2 个答案:

答案 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()而不是