Javascript 如何在使用jquery上载多个文件之前将单个id放在图像预览上

Javascript 如何在使用jquery上载多个文件之前将单个id放在图像预览上,javascript,jquery,Javascript,Jquery,我在使用JQuery上传多个图像之前显示预览。预览工作正常,但问题是我想给每个图像唯一的id。 这就是我到目前为止所做的 $(function() { var imagesPreview = function(input, placeToInsertImagePreview) { if (input.files) { var filesAmount = input.files.length; for (i = 0; i < filesAmount; i++) { var r

我在使用JQuery上传多个图像之前显示预览。预览工作正常,但问题是我想给每个图像唯一的id。 这就是我到目前为止所做的

$(function() {
var imagesPreview = function(input, placeToInsertImagePreview) {
        if (input.files) {
var filesAmount = input.files.length;
for (i = 0; i < filesAmount; i++) {
var reader = new FileReader();
reader.onload = function(event) {
    $($.parseHTML('<img style="width:50%;margin:10px;" id="'+i+'"><input name="taken_date[]" class="date-taken" required="true" id="date-format" style="width:50%;margin:10px 10px 50px 10px;" placeholder="Taken date and time">')).attr('src', event.target.result).appendTo(placeToInsertImagePreview);
};
reader.readAsDataURL(input.files[i]);
}
}}

$('#gallery-photo-add').on('change', function() {
        $(".gallery").empty();
        imagesPreview(this, 'div.gallery');
    });

});

let

for (let i = 0; i < filesAmount; i++) { 
for(设i=0;i
声明
i
with
let

for (let i = 0; i < filesAmount; i++) { 
for(设i=0;i
您没有声明循环变量(
i
),因此它隐式地成为一个全局变量,并且它没有提供循环迭代范围,因此您在
i
周围有一个闭包

将声明更改为使用
let
来声明循环计数器,这将给出块级范围,并且每个迭代都有自己的范围来存储计数器

 for (let i = 0; i < filesAmount; i++) {
for(设i=0;i
您没有声明循环变量(
i
),因此它隐式地成为一个全局变量,并且它没有提供循环迭代范围,因此您在
i
周围有一个闭包

将声明更改为使用
let
来声明循环计数器,这将给出块级范围,并且每个迭代都有自己的范围来存储计数器

 for (let i = 0; i < filesAmount; i++) {
for(设i=0;i