gpt4 book ai didi

jquery - 如何让我的代码等到循环中的所有代码执行完毕后再继续?

转载 作者:行者123 更新时间:2023-12-01 00:19:27 25 4
gpt4 key购买 nike

我正在使用 jquery each 迭代一组 html 元素。在每次迭代中,我都会调用 get。我想跟踪成功的获取并在最后输出一个计数。

var numSuccessful = 0;
$('.mySelector').each(function(){
$.get('/myCfc.cfc?method=doSomething&id=' + $(this).attr('id'),
function(data){
numSuccessful++;
});
});
alert(numSuccessful + ' successful');

此代码的问题在于,each 方法启动所有 get 调用,然后在完成 get 之前以及更新 numSuccessful 变量之前继续发出警报。在测试运行中,我最终得到“0 成功”而不是“4 成功”,因为警报执行得太快。如何让代码等到所有操作完成后再继续?整个“each”语句是否有成功回调?

最佳答案

只需将 $.get 替换为 $.ajax 并将 async 设置为 false。

$.ajax({
url : '/myCfc.cfc',
data : { 'method' : 'doSomething' , 'id' : $(this).attr('id') },
async : false,
success : function(data){
numSuccessful++;
}
});

通过执行此脚本,将等待直到获得响应。

关于jquery - 如何让我的代码等到循环中的所有代码执行完毕后再继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034196/

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