Javascript表排序运行良好,但迭代所有索引会产生不同的结果

我有一个表,我正在使用以下函数进行排序:

function ReorderSupplyGP(table){
  table.find('tr:not(.kn-table_summary)').sort(function (a, b) {
    var tda = $(a).find('td:eq(1)').text().trim();
    var tdb = $(b).find('td:eq(1)').text().trim();

    var sales = {
       "Purchase": 0, "Transfer": 1, "Returns": 2, "Adjustment": 3, "Inventory": 4
    };

    tda = sales[tda];
    tdb = sales[tdb]; 

    // if a < b return 1
    return tda > tdb ? 1
    // else if a > b return -1
    : tda < tdb ? -1
    // else they are equal - return 0    
    : 0;
  }).prependTo(table);


}

它工作得很好但是当我使用函数打印所有行时:

for(x=1;x<tablebodyrow.length;x++)
  {
    console.log(tablebodyrow.eq(x));
  }

看起来好像行在视觉上排序,但它们的索引从未改变过.有没有办法解决这个问题.

最佳答案 这正是你在做什么的:

1)你用一些集合X的值填写一些html表
2)然后你得到html表,从它的行读取值并重新排序html表的行
3)你不要在任何地方重新排序基础集合

解决方案:
1)重新排序初始集合并重新呈现表格
2)在你现有的函数重新排序集合中,不仅仅是html表

点赞