douweng1904 2018-04-20 13:10
浏览 55
已采纳

Jquery每个函数都没有按顺序排列

Why when using each loop, the returned values are not in the same order?

I have a code in php

 $selectedYear = 2018;
 $months = array (
         0 => 'January',
         1 => 'February',
         ...
         11 => 'December'
        );

Now, foreach $months i want to create new row (<tr>) with different value etc. I'm using AJAX for it like:

var selectedYear = <?= json_encode( $selectedYear ) ?>;
var month= <?= json_encode( $months); ?>;

$(month).each(function(k)
        {
            $.ajax({
                type      : 'POST',
                url       : 'scripts/ajax-monthTr.php',
                data      : {month: k, selectedYear: selectedYear},
                beforeSend: function()
                {
                    $('.preloader').css('display', 'block');
                },
                success   : function(data)
                {
                    $('#newTr').append(data);
                    $('.preloader').css('display', 'none');
                }
            }); // end ajax
        });

And i've got result not in order like:

<table>
   <tr id="0">January</tr>
   <tr id="3">April</tr>
   <tr id="2">March</tr>
   <tr id="5">July</tr>
   <tr id="1">"February"</tr>
   ...
</table>

Any solution for it? Have i missed something?

I tried

$(month).each(function(k)

or

for(var i = 0; i < month.lenght; i++)
  • 写回答

3条回答 默认 最新

  • dptn69182 2018-04-20 13:15
    关注

    That's because result of each ajax call is returning data at different interval. You can:

    1) Either append the data before calling ajax function.

    2) or, sort the tr elements based on id attribute after appending new row in every ajax function

     var items = $('#newTr tr');
     items.sort(function(a, b){
       return $(a).attr('id') - $(b).attr('id');
     });
    
     items.appendTo('#newTr');
    

    Working Demo

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line