javascript - 如何创建jquery全局变量

标签 javascript jquery arrays parsing

在我的 json 函数中,它将返回一些值,我想将其存储在全局变量中:

function PrepareJsonFormat() {
    jQuery.getJSON(
    "/abc/xyz", { varA: jQuery("#qwerty").val() },
    function (data) {
        if (data != null && data != "") {
            $.each(data, function (i, val) {
                ==> all the val.value i want to put in global variable
            });    
        }
    });
}

将所有值存储在全局变量中后,我将单击一个按钮并使用这些值。我该怎么做?

请帮忙。谢谢。

最佳答案

我通常建议不要使用全局变量。最好将变量作为函数的返回值,或者使用回调参数,您可以在完成后立即使用您的值调用该参数(例如,在 getJSON 回调函数中):

function PrepareJsonFormat(callback) {
    var myData = {}; // all data will be stored here
    jQuery.getJSON(
    "/abc/xyz", { varA: jQuery("#qwerty").val() },
    function (data) {
        if (data != null && data != "") {
            $.each(data, function (i, val) {
                // put the data in your variable
                myData[i] = val;
            });
            // when we are done, call the callback with myData
            callback(myData);
        }
    });
}

像这样使用:

PrepareJsonFormat( function(returnedData) {
    // use returnedData (myData) here
});

相对于使用全局变量的优点是,如果某个函数调用您的函数两次,您不会覆盖全局变量。另外,任何其他 javascript 都可以访问您的全局变量,因此如果其他人使用相同的名称(相信我,他们会:)),您的数据可能会在您使用之前被覆盖。此外,其他脚本可能已经声明了具有该名称的全局变量(不好的做法,但人们会这样做),在这种情况下,您可能会破坏页面上的其他脚本。

关于javascript - 如何创建jquery全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29487527/

相关文章:

javascript - 在 jQuery .change 上查找 .class 的实例

jquery - 饼中饼( donut )图表

jquery - 使用 jQuery 更改样式表

PHP:将相同长度的数组组合成一个多维数组,其中两者最终都作为值(而不是键)?

C++ 对象数组两次

javascript - jQuery 变量无缘无故变得未定义

javascript - 从对象数组中获取

c# - 将 String.Format() 与 DateTime 数组一起使用时出现问题

javascript - XMLhttprequest 不调用 PHP 脚本

javascript - 可以居中图像但不能在 IE7 中居中 div