0

我有一个脚本,它获取即将上传的图像并添加图像的图像预览。唯一的问题是,如果再次填写表格,之前的图像就不清楚了。

放置缩略图图像的 id 是“缩略图”。有人可以帮我在添加新图像预览之前添加一两行代码来清除 div 吗?

<script> 
    jQuery(function($){
var fileDiv = document.getElementById("upload");
var fileInput = document.getElementById("upload-image");
console.log(fileInput);
fileInput.addEventListener("change",function(e){
  var files = this.files
  showThumbnail(files);
},false)

fileDiv.addEventListener("click",function(e){
  $(fileInput).show().focus().click().hide();
  e.preventDefault();
},false)

fileDiv.addEventListener("dragenter",function(e){
  e.stopPropagation();
  e.preventDefault();
},false);

fileDiv.addEventListener("dragover",function(e){
  e.stopPropagation();
  e.preventDefault();
},false);

fileDiv.addEventListener("drop",function(e){
  e.stopPropagation();
  e.preventDefault();

  var dt = e.dataTransfer;
  var files = dt.files;

  showThumbnail(files);
},false);

function showThumbnail(files){

    // clear the div

  for(var i=0;i<files.length;i++){
    var file = files[i]
    var imageType = /image.*/
    if(!file.type.match(imageType)){
      console.log("Not an Image");
      continue;
    }

    var image = document.createElement("img");
    // image.classList.add("")
    var thumbnail = document.getElementById("thumbnail");
    image.file = file;
    thumbnail.appendChild(image)

    var reader = new FileReader()
    reader.onload = (function(aImg){
      return function(e){
        aImg.src = e.target.result;
      };
    }(image))
    var ret = reader.readAsDataURL(file);
    var canvas = document.createElement("canvas");
    ctx = canvas.getContext("2d");
    image.onload= function(){
      ctx.drawImage(image,100,100)
    }
  }
}
          });
          </script>
4

1 回答 1

0
thumbnail.innerHTML = ''

这将清除缩略图的内容。之后,您可以像在代码中那样附加图像。

编辑:你真的应该使用 jQuery,以避免跨浏览器的头痛:

$('#thumbnail').empty();

这也清除了缩略图元素,但将跨浏览器问题的处理推迟到了 jQuery。

于 2013-10-20T01:02:21.643 回答