【发布时间】:2017-07-06 20:47:15
【问题描述】:
我一直致力于在上传多张图片之前预览它们,并尝试使用@ratan-paul 回复"Preview an image before it is uploaded" 非常有用。但是,当我尝试稍微调整代码时,我得到了一个相当意外的结果。我所做的是为每个<image> 创建一个<span> 标签以添加一些样式选项。这是我最终得到的 jQuery 代码:
$(function () {
var span_id = "";
function readURL(input) {
for(var i =0; i< input.files.length; i++){
var span = $('<span>');
span_id = "span"+i;
span.attr('id',span_id);
span.appendTo('#img-previews');
if (input.files[i]) {
var reader = new FileReader();
reader.onload = function (e) {
var img = $('<img id="dynamic">');
img.attr('src', e.target.result);
img.attr('height','150px');
img.attr('width','200px');
img.appendTo("#"+span_id);
};
reader.readAsDataURL(input.files[i]);
}
}
}
$("#imgUpload").change(function(){
readURL(this);
});
});
现在奇怪的是,当我运行上面的代码时,我为每个图像创建了一个<span> 标签,但所有图像都被塞进了最后一个创建的<span>。另一方面,如果我调试脚本,我会得到想要的结果,其中每个图像都插入到它自己的 <span> 标签中。我对此感到有点困惑,所以如果有人对为什么会发生这种情况或如何避免这种情况有任何想法,将不胜感激。
【问题讨论】:
标签: javascript jquery html css image