2016-04-15 16 views
-2

私は、ユーザーがそれらを再生するための曲をロードするウェブサイトを持っています。このメソッド "loadSongs()"は、基本的にファイル入力からすべての曲を取り出し、ファイル入力の "onchange"と呼ばれます。私は単にファイル名を "song"という文字列配列にプッシュすることはできません。任意のヘルプをお願い申し上げ、ここに私のコードは次のとおりです。Javascript String Array:プッシュメソッドが動作しない

function loadSongs() {

var x = document.getElementById("file"); 
var songs = new Array(); 

if (x.files.length != 0) { 

    for (var i = 0; i < x.files.length; i++) { 

     var file = x.files[i]; 
     songs.push(file.name); 

    } 

} 

for (var j = 0; j < songs.length; j++) { 

    alert("song #" + i + ": " + songs[i]); 

} 

}

私は成功し、私はループの最初に「警告(file.name)」をやったときので、ループの最初にあるすべてのファイルにアクセスすることができ、それは正常に働いた。私は残念ながら文字列配列にそれらを得ることはできません。

+3

2番目のループでは '警告'( "曲番号" + j + ":" + songs [j]); –

+3

このような質問をする前に、ブラウザ[デバッグ](https://developer.chrome.com/devtools/docs/javascript-debugging)を使用する必要があります。 –

+0

@Jacobあなたの質問に答えられたかどうかを知るために、コメントと回答に回答する必要があります。 –

答えて

0

問題はpushメソッドではありません。それはあなたのalertパラメータです。

は、第二のループでは:

for (var j = 0; j < songs.length; j++) { 

    alert("song #" + i + ": " + songs[i]); 

} 

あなたは"song #" + i + ": " + songs[i]を持っていますが、あなたのループはカウンタ変数としてj使用されます。 iからjに変更してください。

for (var j = 0; j < songs.length; j++) { 

    alert("song #" + j + ": " + songs[j]); 

} 
+0

助けてくれてありがとう!無意味な質問を申し訳ありません。 :P – Jacob

+0

これは大丈夫です。ちょうどTimurのアドバイスを受けて、ブラウザのデバッグを使用して、問題が些細なことではないことを確認してください。 –

関連する問題