0

我有一个正在开发的 PhoneGap / jQuery Mobile 应用程序。我在以前使用过的脚本上得到了一些奇怪的结果。

$.ajax({type: "GET",
            url: "http://****.net/****/GetMembers.php",
            data: {get_param: "Member"},
            dataType: "json",
            success: function (data) {
                $.each(data, function (index, element) {
                    $("#members-content").append("<li><a id='members-a-" + element.ID + "' data-id='" + element.ID + "' href='#member-details'><img src='" + element.ImgURL + "' /><h3>" + element.Name + "</h3></a></li>");
                    $("#members-a-" + element.ID).bind('click', function () {Members.MemberID = $(this).attr('data-id'); MemberDetails.Load(); });
                    $("#members-content").listview("refresh");
                    });
           }
    });

从 web 服务返回的 JSON:

[{"会员":{"ID":1,"姓名":"会员 1","ImgURL":null}},{"会员":{"ID":2,"姓名":"会员 2" ,"ImgURL":null}},{"Member":{"ID":3,"Name":"Member 3","ImgURL":null}},{"Member":{"ID":4, "姓名":"会员 4","ImgURL":null}}]

在我的#members-content列表中,我得到undefined<h3>name 元素。

4

3 回答 3

2

你在那里有一个双重嵌套的对象。你应该使用

element.Member.ImgURL

例如查看 json:

[
    {   <--element in your .each() loop
       "Member": {
           "ID":1,
           "Name":"Member 1",
           "ImgURL":null
       }
    },
    { etc...
于 2013-02-14T17:37:25.070 回答
1

每个元素都有一个成员。所以:

element.ID

应该:

element.Member.ID

ImgURL 和名称也是如此

于 2013-02-14T17:37:24.940 回答
1

你有两个选择:在这里找到两个小提琴

要么像你目前正在做的那样循环,但有一个变化:

这必须是这样的element.Member.Name

或者像这样再次循环遍历它:

$.each(data, function (index, element) {
   $.each(element, function (index, e) {
    console.log(e.Name); // <----here you will get the correct response
   });
});
于 2013-02-14T17:51:24.980 回答