【发布时间】:2014-08-06 03:19:25
【问题描述】:
我自己的逻辑工作正常
我正在获取存储在数组中的所有文件,并显示在一个 ID 为 total 的 div 中,在一个 total div 中,我单独显示所有文件div 的 id 为 div_selec+int_loop 在 jquery 的每个循环中。
这样我在一个 div 中显示所有文件:
var int_loop = 1;
$(upfiles).each(function(index, file)
{
display_removebutton = "<img width='20px' style='cursor:pointer;' height='20px' class='class_remove' id='remove_"+int_loop+"' src='images/DeleteRed.png' />";
$('#total').append("<div id='div_selec"+int_loop+"' "+style_limitexceed+"><b>File Name :</b> "+file.name + "<b> Size:</b>" + size_display + display_removebutton + "</div>" );
//DELETE CODE HERE AS DEFINED BELOW
}
现在当用户点击删除图标时,我会从数组中删除文件upfiles
这里是删除代码
$("#remove_"+int_loop).click(function() {
var curr_id = this.id;
var id = curr_id.substr(7);
alert(index + ' this id ' + id);
upfiles.splice(index, 1);
}
问题是,如果 div 中有 3 个文件,当用户删除 'div_selec"+int_loop+"' 中的第一个文件时,它会删除第一个文件,但是当用户尝试删除第二个文件时删除第一个文件后:它是删除第三个文件而不是第二个
因为从数组中删除值后,数组会重置值,但在每个循环中,id 不会重新排序。那么如何解决呢?
希望你们能理解我的问题...
已编辑
$(upfiles).each(function(index, file) 如果您可以在代码中看到这一行。索引未重置,我使用此索引从数组中删除文件。一旦文件从数组中删除,数组正在重置但索引没有
【问题讨论】:
-
使用 id 看起来不是存储您感兴趣的数据的正确方法。您可能会发现使用 classes 更容易i> 和或 data-* 属性
-
$(upfiles).each(function(index, file) 如果您可以在代码中看到这一行。索引未重置,我正在从数组中删除文件这个索引。一旦从数组中删除文件,数组正在重置,但索引不会
-
各位大侠帮我解决这个问题
标签: javascript jquery arrays file