【发布时间】:2014-03-11 21:09:50
【问题描述】:
我正在尝试将返回 AJAX 的 XML 中的相应数据值存储到全局数组中,然后调用函数会从中删除一些元素,但这样做有问题。 数组不是全局的。 这是错误的代码。 感谢您的帮助。
var someArray=new Array();
function refreshPage() {
downloadUrl("page.php", function(data) {
markers = data.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var value=markers[i].getAttribute("Value");
someArray.push(value);
}
});
window.setTimeout("refreshPage()",5000);
}
function removeElement(value){
someArray.slice(value,1);
}
function downloadUrl(url, callback) {
var status = -1;
var request = createXmlHttpRequest();
if (!request) {
return false;
}
request.onreadystatechange = function() {
if (request.readyState == 4) {
try {
status = request.status;
} catch (e) {
}
if (status == 200) {
callback(request.responseXML, request.status);
request.onreadystatechange = function() {};
}
}
}
request.open('GET', url, true);
try {
request.send(null);
} catch (e) {
changeStatus(e);
}
};
【问题讨论】:
-
首先将"downloadUrl("page.php, function(data) {" 改为"downloadUrl("page.php", function(data) {"
-
您的意思是在您的
setTimeout中使用removeElement()吗? -
slice获取数组的一个子集。它不会删除东西。范围似乎不是问题。 -
对我来说看起来很全局,但你没有更改数组?
-
您确定标记有数据吗?
console.log(markers)就在你定义它之后,console.log(value)就在你定义它之后。你看到你所期望的了吗?示例 XML 也可能会有所帮助。
标签: javascript ajax arrays global