JQuery 局部变量不会重置

标签 jquery

我有一个带有 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/

相关文章:

javascript - 是否可以使 materialize.css 模式更大并删除垂直滚动条?

jquery - 修改简单的 jQuery 脚本以使用计时器随机化文本

jquery隐藏所有打开的div并切换

javascript - 对表格进行排序时,第一列中的按钮消失

jquery - getJSON 请求返回未定义

javascript - Jquery,从下拉列表中删除选项不起作用

javascript - 在 Ajax 成功和页面加载时运行 JS 函数

jquery - 需要用jquery将h3和div包装在包装器div中

javascript - 在 wicket 中刷新页面后重新聚焦输入字段

javascript - 使用 javascript 动态绘制 SVG