jQuery“操作数a中的TypeError:invalid”

时间:2014-06-26 11:59:55

标签: jquery arrays json each

我从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...

所以我无法弄清楚如何使用这个数组!有人有任何想法吗?

4 个答案:

答案 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”。