我有一个网站加载歌曲供用户播放。这种方法" loadSongs()"基本上从文件输入中获取所有歌曲并被称为" onchange"的文件输入。我根本无法将文件名推送到我的字符串数组中:" songs"。非常感谢任何帮助,这是我的代码:
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]);
}
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]);
}
我可以成功访问第一个for循环中的所有文件,因为当我做了&#34; alert(file.name)&#34;在第一个for循环中,它工作正常。不幸的是,我无法将它们放入字符串数组中。
答案 0 :(得分: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]);
}