我从ajax调用返回以下json数组:
{"err":"err_type","fields":["field1","field2"]}
当试着用这个函数打印出来时:
$.each(data.fields, function (i, field) {
console.log(field);
$.each(field, function (j, f) {
$('[name="'+f+'"]').addClass('form_err');
console.log(f);
});
});
我明白了:
data1
TypeError: invalid 'in' operand a
...turn function(b){return db(a,b).length>0}}),contains:fb(function(a){return funct...
所以我无法弄清楚如何使用这个数组!有人有任何想法吗?
答案 0 :(得分:11)
你正在迭代一个字符串,你不需要两个.each()函数
$.each(data.fields, function (i, field) {
$('[name="'+field+'"]').addClass('form_err');
console.log(field);
});
答案 1 :(得分:2)
请记住添加dataType: 'json';
,以便它可以作为数组循环而不是字符串。
答案 2 :(得分:0)
您不需要其他循环$.each()
:
$.each(data.fields, function (i, field) {
console.log(field);
$('[name="'+field+'"]').addClass('form_err');
});
data.fields
是一个仅包含strings
的数组,因此您无需再次循环。只需要在具有{key:value}
对的另一个数组对象时才需要循环。
答案 3 :(得分:-2)
在你的主循环中,“field”var不是一个数组,因此你不能在其上使用“each”。