【发布时间】:2012-01-19 19:59:17
【问题描述】:
我正在努力思考全局变量的替代方案。
有问题的情况是我需要在一个 XML 中查找值并与另一个 XML(或更多)进行比较。由于 XML JQuery 本身就是一个函数,而其下的操作是函数内部的函数(呃),我无法从 2 个深度函数中获取值并在全局范围内使用它。
所以目前我无法从 1 个文件中获取 XML 值并使用它过滤另一个 XML 文件,这就是我需要帮助的地方。
我收到了 3 个 XML 文件。
文件 1 - categories.xml - 包含类别映射 比如……
<CAT>
<OA1>True</OA1>
<OA2>False</OA2>
<OA3>True</OA3>
<EP1>True</EP1>
<EP2>False</EP2>
<EP3>False</EP3>
</CAT>
文件 2 = oa.xml - 包含每个 OA 记录的值 比如……
<OA>
<Name>Name 1</Name>
<City>City</City>
<State>ST</State>
</OA>
等等……
文件 3 = EP.xml - 包含每个 EP 记录的值 复制代码
<EP>
<object 1></object1>
<object 2></object2>
<object 3></object3>
</EP>
现在,当我开始时,我认为我可以做的是允许用户选择一个类别,并根据该选择返回 2 个包含映射到该类别的值的表。
我的问题是,当 JQuery 开始解析 XML 时,它会在一个函数中进行解析(在我见过的所有示例中),所以我不知道如何在一个函数中设置一个变量并在下一个使用的函数中使用它打开第二个文件,或第三个。
这是我现在拥有的: 复制代码
<script>
var catid = ""; // I thought this, being outside of the function would be a global varaible
OA1 = ""; // I tried it with and without var in front
var OAid = "";
$(document).ready(function(){ //When opening an XML we do it in a function
$.ajax({
type: "GET",
url: "xml/categories.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('Cat').each(function(){
//Next 2 rows don't matter b/c I can't use their values outside
//of the function
var catid = $(this).find('Catid').text();
var OA1 = $(this).find('OA1').text();
$('<div class="page-wrap"></div>').html('<table><tr><td>' + catid +'</td><td>OA1 '+ OA1 +'</td></tr></table></div>').appendTo('#page-wrap');
});
}
});
});
//The only way I know how to open up the next XML, start all over again
$(document).ready(function(){
$.ajax({
type: "GET",
url: "xml/OA.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('OAData').each(function(){
var OAid = $(this).find('OAid').text();
$('<div class="page-wrap"></div>').html('<table><tr><td>OA ID is '+ OAid +'</td></tr></table></div>').appendTo('#page-wrap');
});
}
});
});
</script>
//Somebody shoot me
任何建议都将不胜感激 - 我什至无法考虑变量问题的比较操作 b/c。
有没有办法比较 2 个 XML 文件而我只是想念它,或者你能推荐一个使用某种临时位置的解决方案吗?
【问题讨论】:
-
只需将第二个
$.ajax移动到第一个的成功回调内部,您就可以访问这两个变量。 -
就全局变量的替代品而言,我推荐data()方法api.jquery.com/jQuery.data
标签: javascript jquery xml xml-parsing