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等等。任何人都可以解释我做错了什么。
非常感谢
答案 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执行后消失。