索引值不会在循环内更新

时间:2019-02-21 21:56:18

标签: javascript jquery arrays ajax for-loop

我试图创建一个for循环,该循环每次运行jQuery AJAX请求,根据id更新URL,然后根据检索到的信息输出HTML。我遇到的问题是索引值不会在for循环内的AJAX请求中更新,但是它将在AJAX请求之外进行更新,但仍在for循环中。

以下代码正在尝试执行以下操作:

  1. 检查有多少个ID以前缀“ svc-”开头
  2. 如果计数大于1,则创建一个具有id值的数组
  3. 循环遍历数组值并执行AJAX请求,根据数组的索引值从不同的URL提取信息。
 <p><strong>Service fee</strong>: $<span id="svc-200002"></span></p>
 <p><strong>Service fee</strong>: $<span id="svc-200003"></span></p>
var ids = []
var idCount = $("span[id^='svc-']").length;

if (idCount > 1) {  

            $("span[id^='svc-']").each(function () {
                ids.push($(this).attr("id"));
            });

            for (var index in ids) {

                $.get( "http://tcappslab/corp-serv-gen/5/siapi/api/v1.0/fees/" + ids[index], function( data ){

                     var amountsArray = data.amounts[0];

                     // The console log below displays the same index value each time the loop runs (not desired results)
                     console.log(ids[index]);

                     // The console log below displays different amounts each time the loop runs, meaning the index value is updating correctly in the get URL above (desired results)
                     console.log(amountsArray.amount);

                     $("#" + ids[index]).html(amountsArray.amount);
                }, "json" );

                // The console log below displays different values for the index each time the loop runs (desired results)
                console.log(ids[index]);
            };

        } else {
            //nothing here yet;
        };

我在整个代码中添加了注释,以进一步解释我的困境。知道为什么ID索引的第一个控制台日志不会更新,而第二个控制台会更新吗?

在此先感谢您的帮助。

0 个答案:

没有答案