我想知道使用 jquery 循环遍历 html 元素时异步调用是如何工作的。我知道异步调用在进行服务器调用时不会停止迭代。这意味着,即使来自调用的响应尚未完成,脚本也会立即按顺序迭代下一个元素。我的问题是,在每次调用时,我都设置了不同的值,如下所示:$(".businessUnit").each(function (index) { var $element = $(this); var iUCBU_KEY = $element.prop('data-iucbu_key'); var iENTE_KEY = $element.prop("data-iente_key");$.ajax({ method: 'post', url: '/CodeBase/LoadInsertCATETE_BASE1/', data: { iUCBU_KEY: iUCBU_KEY, iENTE_KEY: iENTE_KEY }, success: function (response) { //will there be $element from sequence when call was made? $element.find('input.price').val(response.price); }, error: function (response) { } }); });哪个 $element 将被更新?它是调用的 $element 还是当前迭代的 $element ?来自服务器的响应可能需要几秒钟,因此迭代可以在调用 - 响应之间进一步处理几个元素。
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
将$element在Ajax调用会发出Ajax调用时,它具有的值。
那是因为在.each(表单中使用的回调是对其整个内容的闭包。
如果您要执行以下操作:
const businessUnits = $(".businessUnit");
for (let i = 0; i < businessUnits.length; i++){
var $element = $( businessUnits[i] );
.
.
.
$.ajax(....)
}
那么 的值$element很可能是最后一个元素。
添加回答
举报
0/150
提交
取消