(初学者javascript)获取多个文本文件xml请求

时间:2016-08-13 18:01:17

标签: javascript

非常感谢有人可以帮我解决这里的语法 - 我希望每次都能获得一些不同的文本文件。这是我的代码的一般结构。如何依次获取每个文件(f0,f1和f2)?

window.onload = function(){

var f = (function(){
    var xhr = [];
    for (i = 0; i < 3; i++){
        (function (i){
            xhr[i] = new XMLHttpRequest();
            f0 = "0.txt"
            f1 = "1.txt"
            f2 = "2.txt"
            //??? xhr[i].open("GET", file i, true);
            xhr[i].onreadystatechange = function () {
                if (xhr[i].readyState == 4 && xhr[i].status == 200) {
                   //do stuff
                }
            };
            xhr[i].send();
        })(i);
    }
})();

};

2 个答案:

答案 0 :(得分:1)

只需将文件名放在数组中即可。

window.onload = function(){

var f = (function(){
    var xhr = [];
    var files = ["f0.txt", "f1.txt", "f2.txt"];
    for (i = 0; i < 3; i++){
        (function (i){
            xhr[i] = new XMLHttpRequest();
            xhr[i].open("GET", files[i], true);
            xhr[i].onreadystatechange = function () {
                if (xhr[i].readyState == 4 && xhr[i].status == 200) {
                   //do stuff
                }
            };
            xhr[i].send();
        })(i);
    }
})();

};

答案 1 :(得分:0)

这样的事情应该有效

// ...
    for (i = 0; i < 3; i++){
        (function (i){
            xhr[i] = new XMLHttpRequest();
            xhr[i].open('GET', i.toString() + '.txt'); // <-- this line
            xhr[i].onreadystatechange = function () {
                if (xhr[i].readyState == 4 && xhr[i].status == 200) {
// ....