2012-10-16 25 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); 

快訊前......而就在檢查對象在結構安慰。 當我使用一個沒有詳細文檔的框架時,我必須仔細檢查它們的功能輸出。

相關問題