当前位置: 首页 > 面试题库 >

使用$ .each对Json数据进行jquery循环

湛财
2023-03-14
问题内容

我在名为data的变量中返回了以下JSON。

这是GETS返回的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完全正确。如果这有任何不同,我正在使用chrome。将在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]"

问题答案:
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:

这可以解决问题,但不能解决使用“ eval”的想法,您应该在“ / Cms / GetPages / 123”中看到响应如何。

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


 类似资料:
  • 我是JSON新手,正在尝试寻找一种查询JSON数据的方法,并将信息导入适当的

  • 问题内容: 我在通过jQuery .each()函数循环JSON的键/值时遇到问题 最初我有一个像这样的JSON: 我想遍历JSON中的所有键/值元素(aaa和bbb),并检索内部JSON数组以再次遍历,所以我尝试了 但是,我发现第一个.each()函数会将整个json视为单个结构,并且不会在其元素的键上循环。从.each()函数接收的data参数始终是原始json本身。我永远无法获得指向aaa和

  • 问题内容: 我在尝试解决JQuery $ .each()迭代时遇到一些真正的困难 这是我的数组,为方便起见,限制了结果 我的第一个$ .each迭代效果很好,但是“ EVENTS”的子迭代是我遇到问题的地方 我的第一个$ .each()函数 我无法使用的第二个$ .each()函数 我在(松散地)理解这不是单个JSON对象,而是对象的JSON数组,但不了解第一个版本是否有效,第二个版本为什么不起作

  • 问题内容: 我正在使用PHP脚本创建JSON数据。看起来像这样: 现在,如果我将其放入文件中,然后使用ajax加载它就可以了。但是,如果我从PHP脚本中请求此命令,则会得到 parsererror | 语法错误:意外的令牌非法 这是我用来从PHP加载JSON的代码: 这是PHP代码: 有任何想法吗? 问题答案: Doctypes属于HTML文档,而不是JSON。 在您的PHP文件中尝试这样的操作(

  • 本文向大家介绍jquery进行数组遍历如何跳出当前的each循环,包括了jquery进行数组遍历如何跳出当前的each循环的使用技巧和注意事项,需要的朋友参考一下 最近在忙着进行官网改版,在做其中的一个项目时碰到了一个小问题。问题是这样的,通过 jquery 的循环方法进行数组遍历,但是当不符合条件时,怎么跳出当前循环。 我是使用 $.each() 进行数组循环遍历,但是当进入判断时,不清楚该如何

  • 我有一个复选框列表,想用复选框的所有名称做一些事情。但是我似乎无法访问HTML对象: 这将产生TypeError:elem.hide不是函数 但是console.log(elem)显示: 如何访问每个元素?