微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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表

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐