Я пытаюсь обдумать альтернативы для глобальных переменных.
Речь идет о том, где мне нужно найти значения в одном XML и сравнить с другим XML (или более). Поскольку XML JQuery сам по себе является функцией, а операции под ним являются функциями внутри функции (тьфу), я не могу получить значение из двух глубоких функций и использовать его глобально.
Так что в настоящее время я не могу получить значение XML из 1 файла и использовать его для фильтрации другого файла XML, и здесь мне нужна помощь.
Мне передали 3 файла XML.
Файл 1 - category.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>
<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, он делает это в функции (во всех примерах, которые я видел), поэтому я понятия не имею, как установить переменную внутри одной функции и использовать ее внутри следующей используемой функции. открыть 2-й файл или 3-й.
Вот что у меня сейчас:
Скопировать код
<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, и я просто пропускаю его, или вы можете порекомендовать решение с использованием какого-либо временного местоположения?