2012-10-16 24 views
0

我对输入简单javescript |文件对象:javascript为什么我无法从文件数组中获取文件的名称?

var upfiles=new Array(); 

    function addfile(files){ 
     upfiles.push(files); 
     alert(upfiles[0].name); //undefined 
     alert(files[0].name); //can get file name 
     upfiles[0].prop("name"); //can get file name 
     alert(upfiles.length); //1 
    } 

我不知道为什么upfiles[0].name只给我返回undefined,而upfiles[i]).prop("name")工作。两种方法的区别?

+0

因为'upfiles'是一个数组数组 – freakish

+0

在这里放置文件的结构,但是,它看起来像文件是数组文件 –

回答

0

你尝试

upfiles[0][0] 

看到你推文件的阵列到另一个阵列等

+0

不,我只测试一个文件 – user504909

+0

这真的没关系。 'files'是一个文件数组,即使它只包含一个文件,所以当将'files'推入到一个'new array'中时,在数组中有一个数组,并且必须像上面那样重新引用它两次。 – adeneo

+0

但upfiles [0] .prop(“name”);这意味着它应该是一维数组,如果它是2,它应该是upfiles [0] [0] .prop(“name”); – user504909

0

你可能想使用concat而非push这里,创建一个一维数组。

+0

是的,但我只添加一个文件。所以我肯定它应该是一维数组 – user504909

+0

如果它总是一个文件,那么你应该使用'push(files [0])',因为'files'是一个数组,并且你想要推送数组中的项目,而不是阵列本身。在数组中总是有一个项目的特定场景中,'push(files [0])'与'concat'具有相同的效果。 –

0

我希望我可以发表评论......

我想尝试这在铬,并把

console.log(upfiles); 

快讯前......而就在检查对象在结构安慰。 当我使用一个没有详细文档的框架时,我必须仔细检查它们的功能输出。

相关问题