我正在尝试上传3张照片并对其进行预览。它可以很好地工作,但是当我使用此循环时,显然它将只读取最后一个文件,因为k不会改变。
function readMany(input)
{
var k = 0 ;
for (k=0;k<input.files.length;k++)
{
console.log(k); // ** ok - print 1,2,3
var reader = new FileReader();
reader.onload = function(e)
{
var div = document.getElementById( imagePreviews[k] );
$(div).css('background-image', 'url('+e.target.result +')');
$(div).hide();
$(div).fadeIn(850);
console.log(k); // ** print 3 times the number 3.
}
uploadedProductPhotos=input.files;
reader.readAsDataURL(input.files[k]);
}
}
答案 0 :(得分:0)
使用let
解决了这个问题:
for (let k=0;k<input.files.length;k++)
以便k
保持其状态。