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

Javascript 如何从多阵列中删除文件详细信息,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,Im显示一个div中的所有文件,该div以数组形式出现upfiles。在jquery中使用each显示所有文件和delete按钮,当我单击delete按钮时,应该从数组中删除相应的文件详细信息 下面是jquery代码,每个循环用于从数组中删除文件详细信息 var int_loop = 1; var display_removebutton=""; $(upfiles).each(function(index, file) { i

Im显示一个div中的所有文件,该div以数组形式出现
upfiles
。在jquery中使用each显示所有文件和delete按钮,当我单击delete按钮时,应该从数组中删除相应的文件详细信息

下面是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++;
    });

您是否正确使用了.splice?您将起始索引设置为“0”,并且它正在对文件(可能不是upfiles?)执行操作,这意味着它将删除数组开头的项


JSFIDLE会很有帮助。

拼接
没有定义,因为
upfiles
文件列表
类型,而
文件列表
的原型没有定义它。但是,您可以使用
var array=array.prototype.slice.call(arrayLikeObject,0)
将任何类似数组的对象转换为数组。现在
array
splice
和所有其他数组方法。请参阅以获取一个简短的示例。

请为此发布一个提琴。由于这是代码的中间部分,如何在提琴中发布。我刚刚展示了我被挂起的部分代码。为什么这个问题有这么多的投票,真是一团糟?@Nit,因为它符合堆栈溢出的标准。有人能理解我的问题吗?你们明白了吗?因为这是拖放上传功能,我怎么能把它放到JSFIDLE中呢。请暗示我不太清楚你的意思?您只需要将源代码复制并粘贴到jsfiddle.jasd中。删除文件时出现问题。如果出现新问题,请提出新问题。您可以在聊天室中共享链接?!解决了这个问题。。现在我正在实现另一个功能
$( '#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' );
});