Javascript 从一个函数到另一个函数获取全局声明的变量值
关于javascript,我有一个非常常见的问题 我有一个全局声明变量,但是一个带有该变量的函数如何传递全局声明变量中的值,然后在第二个函数中使用它呢Javascript 从一个函数到另一个函数获取全局声明的变量值,javascript,jquery,Javascript,Jquery,关于javascript,我有一个非常常见的问题 我有一个全局声明变量,但是一个带有该变量的函数如何传递全局声明变量中的值,然后在第二个函数中使用它呢 var ID; function test() { $.getJSON('/Test1/GetTestID', function (test) { $.each(test, function () { ID = this["ID"] alert(ID)
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,但当我全局声明它时,它未声明
有人能帮我吗
谢谢我想您希望
getJSON
是同步的,但事实并非如此。如果调用是相关的,则应嵌套它们:
function test() {
$.getJSON('/Test1/GetTestID', function (test) {
$.each(test, function () {
ID = this["ID"]
$.getJSON("/TestSite?Test=" + ID; )
})
})
}
test1
在test
完成其getJSON
调用之前被调用因为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();
先试试这个,然后将id设置为零
var ID =0;
ID=this[“ID”]
??你想干什么?@RC。实际上id来自getJson,现在添加了一些东西..您不能,您必须在的回调中调用test1
getJSON@RC. 因此不可能在全局声明的变量上传递值并在另一个函数中获取它??您忘记了ID=this[“ID”]
sir上的分号函数test1(ID)
或函数test1(theId)
?@RenTao一些关于JS变量作用域和函数的基本教程可能是一个很好的主意,只是澄清一下sirIntest()
中的内容,如果theId
是123
那么test1(theId)
使用值123
调用test1
,在test1
中,我们得到123
作为id
的值theId
仅存在于test()
中,id
仅存在于test1
中。