我有一个表,我正在使用以下函数进行排序:
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));
}
看起来好像行在视觉上排序,但它们的索引从未改变过。有没有办法解决这个问题。
答案 0 :(得分:2)
这就是你正在做的事情:
1)你用一些集合X的值填写一些html表 2)然后你得到html表,从它的行读取值并重新排序html表的行 3)你不要在任何地方重新排序基础集合
的解决方案: 1)重新排序初始集合并重新呈现表格 2)在你现有的函数重新排序集合中,不仅仅是html表