【问题标题】:jQuery "TypeError: invalid 'in' operand a"jQuery“TypeError:无效的'in'操作数a”
【发布时间】:2014-08-17 06:33:09
【问题描述】:

我有以下从 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...

所以我不知道如何使用这个数组!有人知道吗?

【问题讨论】:

    标签: jquery arrays json each


    【解决方案1】:

    记得添加dataType: 'json';,这样它就可以作为数组而不是字符串循环。

    【讨论】:

    • 祝福你的灵魂
    【解决方案2】:

    你不需要另一个循环$.each():

    $.each(data.fields, function (i, field) {
       console.log(field);
       $('[name="'+field+'"]').addClass('form_err');
    });
    

    data.fields 是一个仅包含strings 的数组,因此您无需再次循环。只有当它是另一个具有{key:value} 对的数组对象时,您才需要循环。

    【讨论】:

      【解决方案3】:

      在你的主循环中,“field”变量不是一个数组,所以你不能在它上面使用“each”。

      【讨论】:

        【解决方案4】:

        你正在迭代一个字符串,你不需要两个 .each() 函数

        $.each(data.fields, function (i, field) {
            $('[name="'+field+'"]').addClass('form_err');
            console.log(field);
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-08
          • 2015-11-19
          • 1970-01-01
          • 2012-11-08
          • 1970-01-01
          • 2015-11-26
          相关资源
          最近更新 更多