У меня очень распространенный вопрос о javascript, у меня есть глобально объявленная переменная, но как функция с этой переменной передает значение в объявленной глобально переменной, а затем использует ее во второй функции?
var ID;
function test() {
$.getJSON('/Test1/GetTestID', function (test) {
$.each(test, function () {
ID = this["ID"]
alert(ID);
}
})
}
function test1() {
$.getJSON("/TestSite?Test=" + ID; )
}
alert(ID);
test();
test1();
Функциональный тест предупреждает идентификатор, но когда я объявляю его глобально, он не был объявлен.
Может кто-то помочь мне с этим??
благодаря
Я думаю, вы ожидаете, что getJSON
будет синхронным, но это не так. Если вызовы зависят, вы должны их вложить:
function test() {
$.getJSON('/Test1/GetTestID', function (test) {
$.each(test, function () {
ID = this["ID"]
$.getJSON("/TestSite?Test=" + ID; )
})
})
}
test1
вызывается до того, как test
завершит вызов getJSON
Поскольку getJSON
является асинхронным, правильный способ выполнить то, что вам нужно, это использовать возвращаемый идентификатор в обратном getJSON
:
function test() {
$.getJSON('/Test1/GetTestID', function (test) {
$.each(test, function () {
var theId = this["ID"];
alert(theId);
test1(theId);
}
});
}
function test1(id) {
$.getJSON("/TestSite?Test=" + id);
}
test();
function test1(id)
или function test1(theId)
?
Попробуйте это сначала, когда вы установили свой id в Zero
var ID =0;
ID = this["ID"]
?? Что ты пытаешься сделать?