我一直在学习自己的代码,所以我的知识不像你所期望的那样技术性强。说了这样的话,我在一个处理图像的项目中,包括用fileList对象向用户显示关于它们的信息,其中一部分信息以这种格式显示:Chrysanthemum.jpg(image/jpeg) - 879394字节,最后修改日期:2009年7月13日。我的程序允许用户在上传剩余的文件之前删除预先选择的文件,当该文件从群组中删除时,它的相关信息也应该发送。我不会让你疯狂地阅读+600行代码,这样你就可以解决我的问题,因此我正在给你一个非常简单的总结我的问题的方法。如何循环遍历新生成的数组而不覆盖它?
在这种情况下我们要删除当一个函数被调用,所以采取偷看到下一个代码的第一个项目:
<input type='button' id='load' value='Load_info' />
<div id='ok'>
<ul id='pic_info'></ul>
</div>
<div id='message'></div>
<input type='button' id='bye' value='Bye[0]' />
var files = ["Chrysanthemum.jpg (image/jpeg) - 879394 bytes, last modified: 13/7/2009", "Desert.jpg (image/jpeg) - 845941 bytes, last modified: 13/7/2009", "Hydrangeas.jpg (image/jpeg) - 595284 bytes, last modified: 13/7/2009", "Jellyfish.jpg (image/jpeg) - 775702 bytes, last modified: 13/7/2009", "Koala.jpg (image/jpeg) - 780831 bytes, last modified: 13/7/2009", "Lighthouse.jpg (image/jpeg) - 561276 bytes, last modified: 13/7/2009", "Penguins.jpg (image/jpeg) - 777835 bytes, last modified: 13/7/2009"];
var once = 0;
var a = '';
var d = '';
//someFlag = true;
//var upd = [];
var e;
var f = '';
var g = 0;
function load() {
for (var i = 0; i < files.length; i++) {
a += "<li>" + files[i] + "</li>";
$("#pic_info").html(a);
e = $("#pic_info li").length;
}
}
function delete_item(arr, inx) {
if (e <= 0) {
e = 7;
} else {
e -= 1;
}
//for (var c = 0; c < arr.length; c++) {
// d += "<li>" + arr[c] + "</li>";
//$("#pic_info").html(d);
//}
arr.splice(inx, 1);
$("#pic_info").html(arr);
}
$("#load").click(function() {
if (once == 0) {
load();
once = 1;
} else {
$("#message").html("<strong>files already loaded</strong>");
}
});
$("#bye").click(function() {
delete_item(files, 0);
});
我一直没能找到重新安排“的有效途径arr“项中的”li“标签中,我试图循环遍历它们,但是如果启用”for循环“来发生数组本身,它将被新输出覆盖,直到达到最后一项。我试了一堆东西来解决这个看似简单的问题,我不能......我放弃了,并决定从更好的队友那里得到帮助
PD:我知道有一个千个插件来处理文件。我只想测试一些学过的技能。
这是一个小提琴: * jsfiddle
感谢您的时间,我真的很感激,我希望我已经解释了自己