未捕获的TypeError:无法使用'in'运算符来搜索'16'

时间:2014-06-04 11:46:02

标签: javascript jquery ajax post

我在发布操作响应中有这个json对象:

{"status":"ok","filename":"538f057493d55.png"}
{"status":"ok","filename":"538f057493d11.png"}

我需要获取文件名值并将其添加到某些隐藏输入中,所以我这样做:

$.post(url, {image: src}).done(function(data){
    var status = data.status;
    if (status === "ok"){
        var filename = data.filename;
        $.each(filename, function(key, value){
            var photosInput = $('#images');
            photosInput.val(value);
        });
    } else {
       // error
    }
});

发布工作正常,但是根据文件名值显示一些错误:Uncaught TypeError: Cannot use 'in' operator to search for '16' in 538f057493d55.png。求助。

1 个答案:

答案 0 :(得分:0)

现在,$.each(filename,...正在迭代文件名的字母。

但你似乎不需要任何迭代。看起来好像只是想要

$.post(url, {image: src}).done(function(data){
    var status = data.status;
    if (status === "ok"){
        $('#images').val(data.filename);
    } else {
       // error
    }
});

如果data是一个数组并且您想要将所有文件名附加到输入,那么您可以

$('#images').val(data.map(function(f){ return f.filename }).join(' '));