我有一个像这样的JS函数
$.post(url, params, getFoodJSONText, "json");
和回调功能如下:
function getFoodJSONText(data) { parse JSON}
返回JSON,如下所示:
{"result":[{"foodid":"3","price":"42","restaurantid":"1","picture_url":"/canteen/picture/food/3.jpg","foodname":"????"},{"foodid":"4","price":"38","restaurantid":"1","picture_url":"/canteen/picture/food/4.jpg","foodname":"?????"},{"foodid":"5","price":"48","restaurantid":"1","picture_url":"/canteen/picture/food/5.jpg","foodname":"?????"},{"foodid":"6","price":"42","restaurantid":"2","picture_url":"/canteen/picture/food/6.jpg","foodname":"???"}]}
我尝试使用
$.each(data, function(i,item){
alert(item.foodname[i]);
});
但它不会起作用。
我已经搜索了很长一段时间但没有得到一个好的解决方案。
任何人都可以提出建议吗?
非常感谢你:D
答案 0 :(得分:1)
item
将是当前数组值,i
将是当前索引。
只需使用item
即可。您还需要迭代data.result
,而不仅仅是data
。
答案 1 :(得分:1)
使用each
:
data.result
$.each(data.result, function(i, item) {
alert(this.foodname);
});
迭代器函数将在结果数组的每个成员的上下文中调用,因此this
将等于函数内的item
。
答案 2 :(得分:1)
试试这个:
function getFoodJSONText(data) {
var food = $.parseJSON(data);
//use food, for example:
alert(food.result[0].foodid);
}