「ファイルの選択」がクリックされたときの次のコードがあります。
$(':file').change(function () {
if(this.files.length == 1) {
$('#selected_files').html("<h4>Attaching " + this.files.length + " file</h4>");
} else {
$('#selected_files').html("<h4>Attaching " + this.files.length + " files</h4>");
}
$('#selected_files').append("<table class=\"altShaded\"><thead><tr><td></td><td>Filename</td><td>Size</td></tr></thead>");
for(x=0;x<=this.files.length;x++)
{
var file = this.files[x],
name = file.name,
size = file.size,
type = file.type;
$('#selected_files').append("<tr><td></td><td><b>" + name + "</b> ("+filesize(size)+") " + type + "<br>");
}
});
結構ですよね?そして、すべてうまくいきます。jQueryがテーブルの行を追加するとき、新しいテーブルを開始したいようで、上部<thead>
が行に添付されていないことを除いて、それは素晴らしいことです(Chrome)。
わかりました、文字列を作成して、一度にすべて入れてみようと思いました。
したがって:
$(':file').change(function () {
if(this.files.length == 1) {
var displayFiles = "<h4>Attaching " + this.files.length + " file</h4>";
} else {
var displayFiles = "<h4>Attaching " + this.files.length + " files</h4>";
}
var displayFiles = displayFiles + "<table class=\"altShaded\"><thead><tr><td></td><td>Filename</td><td>Size</td></tr></thead>";
for(x=0;x<=this.files.length;x++)
{
var file = this.files[x],
name = file.name,
size = file.size,
type = file.type;
displayFiles = displayFiles + "<tr><td>" + type + "</td><td><b>" + name + "</b></td><td>"+filesize(size)+"</td></tr>";
}
$('#selected_files').html(displayFiles);
});
しかし、突然、次のエラーが表示されます。
* Uncaught TypeError: 未定義のプロパティ 'name' を読み取れません *
その周りのコードを除いて、何も変更されていません。それは次を指しています:
名前 = ファイル名、
ここで何が問題なのか教えてもらえますか?