我试图做一个(非常简单的)搜索引擎来读取XML数据库,检查检索到的值是否与搜索条件匹配,然后将项目的ID添加到名为{{1}的全局变量中}。
我用这种方式声明了变量:
_result[][]
在.js文件的最开头,将由HTML引用。
当我要求警告循环内的var值时,它工作正常。当循环结束时,我做了另一个警告来测试结果是否仍在var _result = new Array(new Array());
,在给定位置(即_result
)并且它不起作用,var是未定义的。我认为这可能是一个范围问题,我无法解决它。这让我头疼的是:
_result[1][0]
也许没有必要说,但是,直到循环一切正常,XML连接,向数组添加值...问题是,当循环结束时,似乎它从未分配任何值到function search (target, term) {//where target is the XML´s tag name and term the search term
conectXML();// a function that will connect to the XML
var temp=null;
var idTemp;
var text ="";
for (i=0;i<_XML.length;i++) {
temp = _XML[i].getElementsByTagName(String(target))[0].childNodes[0].nodeValue;
idTemp = _XML[i].getElementsByTagName("contract")[0].childNodes[0].nodeValue;
if (temp === term) {
_result[i] = [i, idTemp, temp];
}
text = text + "</br>"+_result[i][1];
alert (_result[i][1]); // this works, it will alert _result[i][1] value.
}
alert (_result[0][1]); // this doesn´t works. It alerts nothing, and the var appears to be undefined.
}
变量。
很抱歉,如果我在发帖时犯了任何错误,这是我的第一个问题。我已经阅读了其他答案,甚至从他们那里得到了一些解决方案,但是我无法解决这个问题,而且非常积极的我在var声明中错过了一些。