我很喜欢玩JSON。我需要迭代来自AJAX的JSON响应,实际上,我在2,3,7,9,3的表单中从db表中获取checkboxe值。现在我对每个数字都进行了迭代。
如果您在FF控制台区域中运行以下代码,您会发现它正在针对每个数字进行循环而不是值。
请指导我。
var srv = {"services":"26,29"};
jQuery.each( srv.services, function(i, v) {
console.log( v );
});
任何帮助将不胜感激。 谢谢:)
答案 0 :(得分:7)
srv.services
是逗号分隔值的字符串,因此$.each()
将无法正常工作。不过,您可以将split()放入数组中:
var srv = {"services":"26,29"};
jQuery.each(srv.services.split(","), function(i, v) {
console.log( v );
});
工作演示:http://jsfiddle.net/AndyE/veP4p/
你也可以让你的JSON服务返回一个数组而不是一个字符串,例如{"services":[26, 29]}
。如果您正在使用适当的JSON兼容方法进行编码并且数据是数组,那么这将在服务器上自动完成。
答案 1 :(得分:1)
它不是有效的json数组,你的json数据应该是这样的:
var srv = {"services": ["26", "29"]};
..或者因为您可以使用js split function分割字符串数据:
jQuery.each(srv.services.split(","), function(i, v) {
console.log( v );
});
答案 2 :(得分:0)
不确定这是否是您问题的答案,但鉴于上述声明,请在迭代前尝试拆分,
:
var srv = {"services":"26,29"};
jQuery.each( srv.services.split(','), function(i, v) {
console.log( v );
});
(Demo)
答案 3 :(得分:0)
您必须先创建一个数组
var srv = {"services":"26,29".split(",")};
jQuery.each( srv.services, function(i, v) {
console.log( v );
});