gpt4 book ai didi

javascript - 在函数外部访问 jQuery 变量

转载 作者:行者123 更新时间:2023-12-02 22:20:43 25 4
gpt4 key购买 nike

这不起作用:

   $(document).ready(function () {
var getJ = null;
var url = 'JSON file URL here';
$.getJSON(url, function (data) {
getJ = [...data]
});
});
document.write(getJ[0].Tag)

(此处的标签包含来自 JSON 文件的一些数据)

这仅当我在函数内输出 getJ 时才有效;但是,我想要它在外面。

最佳答案

这里有一些事情在起作用:

  1. 您的 $(document).ready 函数是一个回调,每当文档完全加载时就会执行。您的 document.write 调用没有回调,因此它肯定会在您在 .ready 中执行的任何操作之前执行,并且 getJ 尚未分配。

    <
  2. 您的 $.getJSON 调用还接受回调函数,这意味着它会等待请求执行,然后才能设置结果。这些函数都会被延迟,而 document.write 却不会。您可以使 GET 请求同步(将 async 设置为 false)。您可以通过使用完整的 $.ajax 调用来做到这一点:https://stackoverflow.com/a/2765848或者,您可以开始将函数链接在一起,因为同步调用已被弃用,并且可能不会支持很长时间。以下是如何使用 jQuery 执行此操作的示例: https://stackoverflow.com/a/16045729

  3. 虽然 JS 中的 var 会使变量在全局范围内可访问,但请不要在您甚至不打算在范围内声明它,从而使自己或其他人感到困惑使用它。您希望在 $(document).ready 调用之外访问此变量,因此您应该在该函数之前声明它,以明确您希望更改它。

关于javascript - 在函数外部访问 jQuery 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59240598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com