1

画像を複数アップロードできるページを作成しようとしていますが、これには異なる名前属性が必要です。これを実現するために、JS を使用しiて、数値を与える変数を 1 つ追加しています。

以下のコードは NaN を返しますが、その理由はよくわかりません。

$('document').ready(function() {
var i = 1;
$('#new-dialogue').click(function() {
    var i = i + 1;
    $('.create-upload').append('<div class="upload"><input type="file" name="image' + i + '"/></div>');
});
});
4

3 に答える 3

5

2 番目の を削除しvarます。

あなたの現在のコードが言っていることは、new-dialogueがクリックされたときに、 という変数を作成して...iに設定する必要があるということです。i+1iundefined + 1NaN

2番目を削除varすると、クリック関数がi含まれているスコープから変数を取得するようになります。これは、あなたがやりたいことです。その後i++、必要に応じてインクリメントする必要があります。

とはいえ、以下を使用することで、生活を楽にすることができます。

<input type="file" name="image[]" />

サーバー側では、アップロードされたファイルの配列があるためです;)

于 2013-09-01T23:48:56.407 に答える
2

それ以外の

var i = i + 1;

やるだけ

i++;

再度宣言するのではなく、すでに宣言されている変数をインクリメントする必要があります。

于 2013-09-01T23:49:20.040 に答える
2

コールバックに対して local を再宣言すると、関数はまだ値を受け取っていないi独自のローカル コピーを取得しました。基本的には であり、これはiに評価されます。 var i = i + 1;var i = undefined + 1;NaN

varこれを修正するには、を削除します。

于 2013-09-01T23:49:54.443 に答える