在我的 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/