我正在开发一个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");
});
}
});
从webservice返回JSON:
[{“会员”:{“ID”:1,“姓名”:“会员1”,“ImgURL”:null}},{“会员”:{“ID”:2,“姓名”:“会员2“,”ImgURL“:null}},{”会员“:{”ID“:3,”姓名“:”会员3“,”ImgURL“:null}},{”会员“:{”ID“ :4,“姓名”:“会员4”,“ImgURL”:null}}]
在我的#members-content
列表中,我为undefined
名称元素获取了<h3>
。
答案 0 :(得分:2)
你有一个双嵌套对象。你应该使用
element.Member.ImgURL
e.g。看看json:
[
{ <--element in your .each() loop
"Member": {
"ID":1,
"Name":"Member 1",
"ImgURL":null
}
},
{ etc...
答案 1 :(得分:1)
每个元素都有一个成员。所以:
element.ID
应该是:
element.Member.ID
ImgURL和Name
也是如此答案 2 :(得分:1)
您有两种选择:find the two in fiddle here
要么像现在一样循环,只需要进行一次更改:
这必须像element.Member.Name
或者像这样再次循环:
$.each(data, function (index, element) {
$.each(element, function (index, e) {
console.log(e.Name); // <----here you will get the correct response
});
});