我有一个关于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();
功能测试提醒ID,但是当我在全球声明它时,它是未声明的。
有人可以帮我解决这个问题吗?
由于
答案 0 :(得分:1)
我认为你期望getJSON
是同步的,但事实并非如此。如果调用是依赖的,你应该嵌套它们:
function test() {
$.getJSON('/Test1/GetTestID', function (test) {
$.each(test, function () {
ID = this["ID"]
$.getJSON("/TestSite?Test=" + ID; )
})
})
}
在test1
完成test
来电之前, getJSON
被调用
答案 1 :(得分:0)
因为getJSON
是异步的,所以执行所需的正确方法是在getJSON
的回调中使用返回的ID:
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();
答案 2 :(得分:0)
首先尝试将id设置为Zero
var ID =0;