Javascript 从列表中删除图像

Javascript 从列表中删除图像,javascript,jquery,Javascript,Jquery,这是我的文本字段 <input type="file" name="noteMedia[]" multiple id="ssi-upload" /> 我正在添加复制粘贴功能,所以我这样做了 document.onpaste = function(event){ var items = (event.clipboardData || event.originalEvent.clipboardData).items;

这是我的文本字段

<input type="file" name="noteMedia[]" multiple id="ssi-upload" />
我正在添加复制粘贴功能,所以我这样做了

document.onpaste = function(event){
  var items = (event.clipboardData || event.originalEvent.clipboardData).items;
  const dTLocal = new DataTransfer();
  for (index in items) {
    var item = items[index];
    if (item.kind === 'file') {
      var blob = item.getAsFile();
      var reader = new FileReader();
      dTLocal.items.add(blob);
      fileInput.files = dTLocal.files;
      reader.readAsDataURL(blob);
    }
  }
  $("#ssi-upload").change();
  i=i+1
}
这是我的
#ssi upload.change()

结果不是删除文件,而是添加另一个文件。那么,我该如何修复它呢

删除
$(“#ssi upload”).change()
并将类添加到
td
中,如
img preview
并将
参数传递到
deleteImage
,以便访问该元素。检查下面的代码片段

const dT=new DataTransfer();
const fileInput=document.getElementById(“ssi上载”);
var i=0;
设imageIndex=0;
document.onpaste=函数(事件){
var items=(event.clipboardData | | event.originalEvent.clipboardData).items;
const dTLocal=新数据传输();
用于(项目索引){
var项目=项目[索引];
如果(item.kind=='file'){
var blob=item.getAsFile();
var reader=new FileReader();
dTLocal.items.add(blob);
fileInput.files=dTLocal.files;
reader.readAsDataURL(blob);
}
}
$(“#ssi上载”).change();
i=i+1
}
$(“#ssi上载”).change(函数(){
$(“#图像预览”).html(“”);
var file=$(this)[0]。文件[0];
dT.items.add(文件);
fileInput.files=dT.files;
imageIndex=0;
数组.from(dT.items).forEach(item=>{
var blob=item.getAsFile();
var image=新映像()
var reader=new FileReader();
var uri=URL.createObjectURL(blob);
var img=新图像();
img.src=uri;
var imagePreview=“”;
$(“#imagePreview”)。追加(“+imagePreview+”

); imageIndex=imageIndex+1 }); }); 函数deleteImage(索引,obj){ const fileListArr=Array.from(fileInput.files) fileListArr.拼接(索引,1); console.log(fileListArr); $(obj).最近('.img preview').remove(); //$(“#ssi上传”).change() }


删除
$(“#ssi upload”).change()
并将类添加到
td
中,如
img preview
并将
参数传递到
deleteImage
,以便您可以访问该元素。检查下面的代码片段

const dT=new DataTransfer();
const fileInput=document.getElementById(“ssi上载”);
var i=0;
设imageIndex=0;
document.onpaste=函数(事件){
var items=(event.clipboardData | | event.originalEvent.clipboardData).items;
const dTLocal=新数据传输();
用于(项目索引){
var项目=项目[索引];
如果(item.kind=='file'){
var blob=item.getAsFile();
var reader=new FileReader();
dTLocal.items.add(blob);
fileInput.files=dTLocal.files;
reader.readAsDataURL(blob);
}
}
$(“#ssi上载”).change();
i=i+1
}
$(“#ssi上载”).change(函数(){
$(“#图像预览”).html(“”);
var file=$(this)[0]。文件[0];
dT.items.add(文件);
fileInput.files=dT.files;
imageIndex=0;
数组.from(dT.items).forEach(item=>{
var blob=item.getAsFile();
var image=新映像()
var reader=new FileReader();
var uri=URL.createObjectURL(blob);
var img=新图像();
img.src=uri;
var imagePreview=“”;
$(“#imagePreview”)。追加(“+imagePreview+”

); imageIndex=imageIndex+1 }); }); 函数deleteImage(索引,obj){ const fileListArr=Array.from(fileInput.files) fileListArr.拼接(索引,1); console.log(fileListArr); $(obj).closest('.img preview').remove(); //$(“#ssi上传”).change() }



谢谢现在我可以删除图像而不会出错,但是当我复制另一个文件时,删除的文件会再次显示。复制另一个文件是什么意思?复制并粘贴新文件您可以创建一个带有复制和粘贴示例的片段吗?谢谢现在我可以删除图像而不会出错,但是当我复制另一个文件时,删除的文件会再次出现。复制另一个文件是什么意思?复制并粘贴新文件你能用复制并粘贴示例创建一个代码段吗?
document.onpaste = function(event){
  var items = (event.clipboardData || event.originalEvent.clipboardData).items;
  const dTLocal = new DataTransfer();
  for (index in items) {
    var item = items[index];
    if (item.kind === 'file') {
      var blob = item.getAsFile();
      var reader = new FileReader();
      dTLocal.items.add(blob);
      fileInput.files = dTLocal.files;
      reader.readAsDataURL(blob);
    }
  }
  $("#ssi-upload").change();
  i=i+1
}
 $("#ssi-upload").change(function(){
      $("#imagePreview").html("");
      var file =  $(this)[0].files[0];
      dT.items.add(file);
      fileInput.files = dT.files;
      imageIndex = 0;
      Array.from(dT.items).forEach(item => {
        var blob = item.getAsFile();
          var image = new Image()
          var reader = new FileReader();
          var uri = URL.createObjectURL(blob);
          var img = new Image();
          img.src = uri;
          var imagePreview = "<img width = '150px' height='100px' src='"+uri+"'>";
          $("#imagePreview").append('<td style="text-align:center; vertical-align:middle">'+imagePreview+'<p class="text-center" align="text-center"> <a onclick="return deleteImage('+imageIndex+');" href="#"> Delete </a></p> </td>');
          imageIndex = imageIndex + 1
        });
       
    });
 function deleteImage(index){
      const fileListArr = Array.from(fileInput.files)
      fileListArr.splice(index, 1)
      $("#ssi-upload").change()
    }