如何从多个数组中删除文件详细信息
即时显示,其中在一个阵列来一个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 im显示删除按钮时,哪个用户必须删除一些文件
编辑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
没有定义因为upfiles
是类型的FileList
和的原型FileList
不定义它。 不过,你可以使用var array = Array.prototype.slice.call(arrayLikeObject, 0)
将任何类似数组的对象转换为数组。 现在array
有splice
和所有其他数组方法。 请参阅http://jsfiddle.net/8e2s7/1/的简短示例。
你正确使用.splice吗? 你的起始索引设置为'0',并且它正在处理文件(也许不是upfiles?),这意味着它将在数组开始时删除项目。
MDN .splice函数
一个jsFiddle会很有帮助。
链接地址: http://www.djcxy.com/p/20941.html