从 jQuery GET 请求获取变量

发布于 2024-11-06 12:04:25 字数 327 浏览 0 评论 0 原文

我需要从 GET 请求内部获取一个变量并在函数内部使用它。它不起作用。这是我的代码:

function chooseChosenOne() {

         $.get("generate.php", function(data) {
           var chosenOne = targetLocation[data.randomNumber];
         }, "json");

         alert(chosenOne);

       }

我该如何解决这个问题?如何在 GET 请求中的该函数之外使用变量“chosenOne”?

I need to get a variable from inside the GET request and use it inside the function. It's not working. Here is my code:

function chooseChosenOne() {

         $.get("generate.php", function(data) {
           var chosenOne = targetLocation[data.randomNumber];
         }, "json");

         alert(chosenOne);

       }

How can I fix this? How can I use the variable "chosenOne" outside of that function in the GET request?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光病人 2024-11-13 12:04:25

您必须使用 jQuery 插件 getURLParam

value = $.getURLParam("paramName");

You have to use the jQuery plugin getURLParam

value = $.getURLParam("paramName");
倚栏听风 2024-11-13 12:04:25

“chosenOne”仅存在于您的回调函数中,并且您的代码将在回调运行之前触发alert()...

function chooseChosenOne() {           
     $.get("generate.php", function(data) {            
                doSomethingWithChosenOne(targetLocation[data.randomNumber]);
               }, "json");
} 

function doSomethingWithChosenOne(v){
   alert(v);
}

'chosenOne' only exists inside your callback function, and your code will hit the alert() before the callback has even run...

function chooseChosenOne() {           
     $.get("generate.php", function(data) {            
                doSomethingWithChosenOne(targetLocation[data.randomNumber]);
               }, "json");
} 

function doSomethingWithChosenOne(v){
   alert(v);
}
海未深 2024-11-13 12:04:25

当您调用 alert(chosenOne); 时,Ajax 回调尚未执行。 Ajax 是异步的。函数chooseChosenOne不会等到Ajax调用完成,它会立即返回。

您只能在回调中处理返回值:

function chooseChosenOne() {
     $.get("generate.php", function(data) {
         var chosenOne = targetLocation[data.randomNumber];
         alert(chosenOne); 
     }, "json");
}

因此您要做的就是让您的函数接受回调,一旦该值可用,该回调就会被调用:

function chooseChosenOne(callback) {
     $.get("generate.php", function(data) {
         callback(targetLocation[data.randomNumber]);
     }, "json");
}

chooseChosenOne(function(theOne) {
   // now do stuff with theOne here
});

另请参阅:

At the time you call alert(chosenOne);, the Ajax callback is not executed yet. Ajax is asynchronous. The function chooseChosenOne will not wait until the Ajax called finished, it will return immediately.

You can only work the return value in the callback:

function chooseChosenOne() {
     $.get("generate.php", function(data) {
         var chosenOne = targetLocation[data.randomNumber];
         alert(chosenOne); 
     }, "json");
}

So what you have to do is to make your function accept a callback which gets called as soon as the value is available:

function chooseChosenOne(callback) {
     $.get("generate.php", function(data) {
         callback(targetLocation[data.randomNumber]);
     }, "json");
}

chooseChosenOne(function(theOne) {
   // now do stuff with theOne here
});

See also:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文