我有一个带有 JQuery 函数的局部变量。每次运行该函数时,该变量都会保留上次运行的数据。
我已经尝试过:
delete myVar;
myVar = undefined;
两者都在函数的开头,但旧数据仍然存在。我做错了什么?
$.get("http://api.lmiforall.org.uk/api/v1/ashe/estimatePay",
{ soc: soc, coarse: "false", filters:"region:12"},
function(datani) {
nipay=undefined; // clear variable data
nipay = maxBy("year", datani.series).estpay ; // load data into variable
if(nipay) { //check that variable contains data
}
else {
nipay="Not available"; // Message if no data
}
$("#graph-box1").html("<p><b>NI:</b> " + nipay + " GBP/week </p>") // display the result
});
最佳答案
您的变量未在函数范围内声明,因为您缺少 var
声明。在这种情况下,它是在全局作用域中声明的,因此保留了上次运行的值,因为该变量在全局作用域中保留。
var nipay = maxBy("year", datani.series).estpay;
关于JQuery 局部变量不会重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356222/