Javascript 如何在使用jquery上载多个文件之前将单个id放在图像预览上
我在使用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
$(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
withlet
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