gpt4 book ai didi

javascript - 如何从多阵列中删除文件详细信息

转载 作者:数据小太阳 更新时间:2023-10-29 04:47:50 27 4
gpt4 key购买 nike

我在一个 div 中显示所有文件,这些文件来自数组 upfiles 。在 jquery 中使用每个显示带有删除按钮的所有文件,当我单击删除按钮时,应从数组中删除相应的文件详细信息。

这是每次循环的 jquery 代码,我试图从数组中删除文件详细信息

var int_loop =  1;
var display_removebutton="";
$(upfiles).each(function(index, file)
{
if(total_size > 1000) // size limit comparision
display_removebutton = "<img width='20px' style='cursor:pointer;' height='20px' id='remove_"+int_loop+"' src='images/DeleteRed.png' />"
size = Math.round( file.size / 1024 );
if(size > 1000)
{
if(size > 1024)
size_display = Math.round(size / 1024 * 100)/100 + ' mb';
else
size_display = size + ' kb';
alert(file.name+"("+size+")"+" will be removed atomatically from list. As it exceeds limit.");
}
if(size > 1024)
size_display = Math.round(size / 1024 * 100)/100 + ' mb'; // converted to mb
else
size_display = size + ' kb';
$('#total').append("<div id='div_selec"+int_loop+"'><b>File Name :</b> "+file.name + "<b> Size:</b>" + size_display + display_removebutton + "</div>" );
$("#remove_"+int_loop).click(function() {

var curr_id = this.id;
var id = curr_id.substr(7);
alert(id+'file name '+file.name);
$("#div_selec"+id).empty();
upfiles.splice(index, 1) //updated as the suggested in comment
// delete upfiles[id];
alert(upfiles.length);

});
int_loop++;
});

已编辑 1:

实际上我是在 jquery php 中实现拖放文件上传。在验证所有文件的总大小是否大于 1000kb 时显示删除按钮,用户必须删除一些文件

编辑 2 :

我在控制台日志中收到此错误:TypeError: upfiles.splice is not a function

编辑 3 :

upfiles 来自这个 jquery drop 事件:

$( '#total' ).bind( 'drop',function(event) {

event.stopPropagation();
event.preventDefault();

if( upfiles == 0 )
{
upfiles = event.originalEvent.dataTransfer.files;

console.log(upfiles); // in this console log it is displaying `FileList [File, File, File, File, File, File, File]` File is nothing but the files which i have dropped in a div
}
else {
if(confirm( "Drop: Do you want to clear files selected already?" ) == true) {
upfiles = event.originalEvent.dataTransfer.files;
$( '#fileToUpload' ).val('');
}
else
return;
}
$( "#fileToUpload" ).trigger( 'change' );
});

最佳答案

splice 未定义,因为 upfilesFileList 类型,FileList 的原型(prototype)未定义它。但是,您可以使用 var array = Array.prototype.slice.call(arrayLikeObject, 0)任何类似数组的对象转换为数组。现在 arraysplice 和所有其他数组方法。参见 http://jsfiddle.net/8e2s7/1/举一个简短的例子。

关于javascript - 如何从多阵列中删除文件详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24176369/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com