我有一个表,能够对列进行排序,并且工作正常。
表中的行由 父行和子行 组成,当单击父行时,将显示子行。否则,子行将保持隐藏状态。
我打算基于父行对行进行排序,但不对子行结果进行排序,否则表将一团糟。我尝试使用jQuery在排序之前删除所有子行,并在排序功能后附加它们,但是该列的排序功能第二次不起作用。这可能是因为行索引搞砸了。我怀疑发生这种情况的原因是,当我在变量中删除并存储子行时,行索引仍然保留。因此,当我根据父行重新插入子行时,这些子行的行索引将保持不变。
总有没有显式修改行的行索引而不交换它们的位置吗? 尝试以以下方式使用jQuery:
$('tr.child-row')[0].rowIndex = 3
但是它不会工作。
答案 0 :(得分:4)
您可以更改表格中两行的顺序。
http://jsfiddle.net/4v2owx37/2
这是一个简单的代码,可以更改两行的顺序。
function swap_position(first_index, second_index){
if(second_index > first_index){
$("tr").eq(first_index).insertBefore($("tr").eq(second_index));
$("tr").eq(second_index).insertBefore($("tr").eq(first_index));
}
else if(first_index > second_index){
$("tr").eq(second_index).insertBefore($("tr").eq(first_index));
$("tr").eq(first_index).insertBefore($("tr").eq(second_index));
}
}
swap_position(1,4);
swap_position(5,3);