我试图一次解析2个或更多xml文件。意味着我可以选择例如5个.xml文件,然后它应该通过jQuery插件解析并随后写在页面上。 现在我的问题:循环的第二次,第三次等迭代过早触发,因此第一个文件失去"丢失"。
我的尝试:
var input = $("#xmlInput");
input.change(function () {
var inputfiles = input[0].files;
for (var i = 0; i < inputfiles.length; i++) {
var reader = new FileReader();
reader.readAsText(inputfiles[i]);
reader.onloadend = function () {
var data = $.xml2json(reader.result);
console.log(data);
//write(data);
}
}
});
答案 0 :(得分:0)
只是一个猜测,但它有助于将FileReader分配给不同的变量吗?
var temp = {};
var input = $("#xmlInput");
input.change(function () {
var inputfiles = input[0].files;
for (var i = 0; i < inputfiles.length; i++) {
temp["reader"+i] = new FileReader();
temp["reader"+i].readAsText(inputfiles[i]);
temp["reader"+i].onloadend = function () {
var data = $.xml2json(temp["reader"+i].result);
console.log(data);
//write(data);
}
}
});
答案 1 :(得分:0)
找到另一个问题的答案:
(function (file) {
var reader = new FileReader();
reader.onload = function (readerData) {
var data = $.xml2json(readerData.target.result);
write(data);
}
reader.readAsText(file);
})(inputfiles[i]);
像魅力一样工作。 =)