从文本加载数组并加载到html数据中

时间:2015-02-25 13:33:50

标签: javascript html ajax

function loadTextDoc(url, cfunc) {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = cfunc;
    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}

function myFunction() {
    var values = [];
    var i;
    loadTextDoc("../menu.txt", function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            menus.innerHTML = xmlhttp.responseText;
            values = xmlhttp.responseText;
            for(i in values) {
                alert(values[i]);
            }
        }
    });

}

嗨所以我有这两个函数用于从包含一些数据的txt文件中检索信息:[" bug"," jungle"," tom&#34 ;,"农场","熊猫","青蛙"]。 我想做的是放置每个数组信息,即。 bug,jungle等介绍html中的一个锚点。但是上面两个函数将我的数组视为一个整体,每个字母甚至是[或"显示为数组元素。例如,arr [0]等于[,arr [1] =",arr [2] = b,arr [3] = u等等。任何人都可以解释我做错了什么。

非常感谢

1 个答案:

答案 0 :(得分:1)

您的数据是一个字符串,因此您需要在使用之前解析它:

arr = JSON.parse(arr);

现在您可以根据需要使用“arr”:)

编辑: 您可以使用全局变量或参数在另一个函数中使用此数据。

示例:

var values = [];
function myFunction() {
    var i;
    loadTextDoc("../menu.txt", function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            menus.innerHTML = xmlhttp.responseText;
            values = JSON.parse(xmlhttp.responseText);
            for(i in values) {
                alert(values[i]);
            }
        }
    });
}

function another() {
    // Now you can access "values" from here
}

或者:

function myFunction() {
    var values = [];
    var i;
    loadTextDoc("../menu.txt", function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            menus.innerHTML = xmlhttp.responseText;
            values = JSON.parse(xmlhttp.responseText);
            for(i in values) {
                alert(values[i]);
            }
            another(values);
        }
    });
}

function another(data) {
    // Now you can access "values" from here
    // using "data" parameter
}

但是在最后一个例子中,“值”将在myFunction执行后消失。