我有一个表,我正在使用以下函数进行排序:
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表