我知道问题是什么,但我不确定如何修复它。
循环遍历每个tr,然后发布到url以检索总数,当post返回值时,循环已到达表中的最后一个tr。
因此,当.done回调发生时,$ tr引用表中的最后一行。
引用帖子调用的原始$ tr的最佳方法是什么?
$div.find('table tbody tr').each(function() {
$tr = $(this);
associationId = $tr.data('id');
$.post(settings.UrlFetch, {competition_id: settings.CompetitionId, association_id: associationId})
.done(function (res) {
if (res.success) {
$tr.find('.total').html('$' + Number(res.data.total).toFixed(2));
} else {
alert(res.errors);
}
})
.fail(function (res) {
alert("Unknown Error Occurred");
});
});
答案 0 :(得分:1)
问题是你使用的全局变量$tr
在each
回调的每次迭代中被覆盖,你需要使用一个闭包变量(通过使用{{声明$tr
1}})在每次回调调用中都有var
的本地实例
$tr