为了账号安全,请及时绑定邮箱和手机立即绑定

在循环中定位异步 AJAX 调用中的元素

在循环中定位异步 AJAX 调用中的元素

手掌心 2021-10-14 12:43:35
我想知道使用 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很可能是最后一个元素。


查看完整回答
反对 回复 2021-10-14
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信