JavaScript - 清除元素

时间:2013-10-20 00:57:30

标签: javascript php html dom

我有一个脚本,可以上传要上传的图像并添加图像的图像预览。唯一的问题是,如果再次填写表单,则前一个图像不会清除。

放置缩略图图像的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>

1 个答案:

答案 0 :(得分:0)

thumbnail.innerHTML = ''

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

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

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

这也清除了thumbnail元素,但是将跨浏览器问题解决方案推迟到jQuery。