当我发现此变量引发错误时,我正在看一段代码。
function call(data) {
$.each(data, function(index, value) {
var ddlId = 'ddlCat' + data[index].docId;
var html = '<tr id="supp_doc_row_' + data[index].docId + '" class="cls-delete-dynamic_edit">';
var html2 = '';
var countDocOfsameCategory = parseInt(data[index].countt) - 1;
})
$.post('/someController/SomeAction/', {
requestType: 'GETDOC'
}, function(data1) {
$("#" + ddlId).empty();
$("#" + ddlId).append($('<option value= "Select"> Select Type</option>'));
})
}
现在的问题是我将这个 ddlId 变量视为全局变量。所以我已经使用了这种内部发布方法。但是我在控制台中找到了。
未捕获的ReferenceError:ddlId未定义
at Object.success (<anonymous>:1110:38) at u (jquery-3.3.1.min.js:2) at Object.fireWith [as resolveWith] (jquery-3.3.1.min.js:2) at k (jquery-3.3.1.min.js:2) at XMLHttpRequest.<anonymous> (jquery-3.3.1.min.js:2)
当我在控制台中对其进行调试时,我发现在$。每次调用中它都具有价值,但是在$ .post中却消失了。
谁能告诉我这个全局变量如何丢失其状态?
答案 0 :(得分:3)
var
使变量global
用于特定范围。在函数内部定义的var
可以在函数内部的任何位置访问,但不能在外部访问,因为它不是它的范围。在函数外部的全局范围内定义var
,您的所有函数都可以访问它。