gpt4 book ai didi

javascript - 为什么在 $.post 方法中使用时全局 var 类型变量在 $.each 之外不可访问?

转载 作者:行者123 更新时间:2023-11-30 11:09:25 24 4
gpt4 key购买 nike

当我发现这个变量抛出错误时,我正在检查一段代码。

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 变量视为全局变量。所以我在内部使用了这个post方法。但我在我的控制台中得到了这个。

Uncaught ReferenceError: ddlId is not defined

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)

当我在控制台中调试它时,我发现在 $.each 调用中它有值,但在 $.post 中它已经消失了。

谁能告诉我这个全局变量是如何丢失其状态的?

最佳答案

var 使变量成为特定范围的全局。在函数内部定义的 var 可以在函数内部的任何地方访问,但不能在外部访问,因为它不在其作用域内。在函数外部的全局范围内定义 var,您的所有函数都可以访问它。

关于javascript - 为什么在 $.post 方法中使用时全局 var 类型变量在 $.each 之外不可访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54346109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com