为了账号安全,请及时绑定邮箱和手机立即绑定

使用$.each对JSON数据执行jQuery循环

使用$.each对JSON数据执行jQuery循环

使用$.each对JSON数据执行jQuery循环下面的JSON返回到一个名为data的变量中。这是返回的JSON.。[ {"Id": 10004, "PageName": "club"}, {"Id": 10040, "PageName": "qaz"}, {"Id": 10059, "PageName": "jjjjjjj"}]我正在尝试使用$.each循环这个集合,但是我遇到了警报显示未定义的问题。我尝试过很多不同的语法,但似乎无法理解。我使用的JQuery是$.each(data, function(i, item) {     alert(item.PageName);});有谁能把我引向正确的方向吗?编辑这是我用来获取数据的代码$.getJSON('/Cms/GetPages/123', null, function(data) {   fillSelect(data);});这是在回调时被调用的函数function fillSelect(data) {   alert(data);   $.each(data, function(i, item) {     alert(item.PageName);   });}编辑2这让我有点困惑,根据我的文档,它应该像我有的那样工作,但它没有。Content-Type: application/json; charset=utf-8上面的JSON是正确的。我正在使用铬,如果这使任何不同。将在IE和FF中进行测试.编辑3使用$.get生成"[\r\n {\r\n \"Id\": 10041,\r\n \"PageName\": \"01234567890\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10001,\r\n \"PageName\": \"about\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10056,\r\n \"PageName\": \"fdgdfgdfg\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10052,\r\n \"PageName\": \"hjkhjk\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10059,\r\n \"PageName\": \"jjjjjjj\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10057,\r\n \"PageName\": \"qqqqq\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10054,\r\n \"PageName\": \"qwqw\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n }\r\n]"
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

var data = [ 
 {"Id": 10004, "PageName": "club"}, 
 {"Id": 10040, "PageName": "qaz"}, 
 {"Id": 10059, "PageName": "jjjjjjj"}];$.each(data, function(i, item) {
    alert(data[i].PageName);});$.each(data, function(i, item) {
    alert(item.PageName);});

这两个选项运行良好,除非您有如下内容:

var data.result = [ 
 {"Id": 10004, "PageName": "club"}, 
 {"Id": 10040, "PageName": "qaz"}, 
 {"Id": 10059, "PageName": "jjjjjjj"}];$.each(data.result, function(i, item) {
    alert(data.result[i].PageName);});

编辑:

尝试使用这个,并描述结果

$.get('/Cms/GetPages/123', function(data) {
  alert(data);});

编辑3:

这纠正了问题,但不是使用“val”的想法,您应该看到‘/CMS/GetPages/123’中的响应如何。

$.get('/Cms/GetPages/123', function(data) {
  $.each(eval(data.replace(/[\r\n]/, "")), function(i, item) {
   alert(item.PageName);
  });});


查看完整回答
反对 回复 2019-07-12
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您是否将数据从String转换为JavaScript对象?

你可以用data = eval('(' + string_data + ')');或者,哪个更安全,data = JSON.parse(string_data);但以后只会在FF 3.5中工作,或者如果您包括json2.js

jQuery自1.4.1以来也有此功能,$.parseJSON().

但实际上$.getJSON()应该为您提供已经解析过的json对象,因此您应该彻底检查所有内容,在某个地方几乎没有什么错误,就像您可能忘记引用json中的某些内容一样,或者其中的一个括号丢失了。


查看完整回答
反对 回复 2019-07-12
?
SMILET

TA贡献1796条经验 获得超4个赞

$.each(JSON.parse(result), function(i, item) {
    alert(item.number);});


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 876 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信