对子行数据进行排序,并将父行数据与子组一起移动
Sort child row data and move parent along with child group
我有这样的表格:
<table>
<tr class="parent">
<th id="apple">Apple</th>
<th id="orange">Orange</th>
<th>Banana</th>
</tr>
<tr class="parent">
<td>Apple</td>
<td>Orange</td>
<td>Banana</td>
</tr>
<tr class="child">
<td>Apple 1</td>
<td>Orange 1</td>
<td>Banana 1</td>
</tr>
<tr class="child">
<td>Apple 2</td>
<td>Orange 2</td>
<td>Banana 2</td>
</tr>
<tr class="parent">
<td>Table</td>
<td>cHAIR</td>
<td>Mouse</td>
</tr>
<tr class="child">
<td>Table 1</td>
<td>cHAIR 1</td>
<td>Mouse 1</td>
</tr>
<tr class="child">
<td>Table 2</td>
<td>cHAIR 2</td>
<td>Mouse 2</td>
</tr>
</table>
我只想在单击<th>
时对子行数据进行排序,并将父 tr 与子 tr 一起移动。我无法做到这一点,因为它只有一个表。
我目前使用的代码是:代码演示
我想我现在明白你想要什么了。我认为您希望通过使用父级对组进行排序,并对组中的子项进行排序。
$('th').click(function() {
//remove and group
var groups = [];
$(this).parent().siblings().each(function() {
$(this).detach();
if($(this).hasClass('parent')) {
groups.push({parent:$(this), children:[]});
} else {
groups[groups.length-1].children.push($(this));
}
});
//sort, inter-group, and intra-group
var i = $(this).index();
function compareRows(rowA, rowB) {
var a = $(rowA.children()[i]).text();
var b = $(rowB.children()[i]).text();
return a < b ? -1 : a > b ? 1 : 0;
}
groups.sort(function(groupA, groupB) {
return compareRows(groupA.parent, groupB.parent);
});
$.each(groups, function(_, group) {
group.children.sort(compareRows);
});
//reinsert
var table = $(this).parent().parent();
$.each(groups, function(_, group) {
table.append(group.parent).append(group.children);
});
});
请澄清您的意图是否是其他意图。
相关文章:
- 以下数据布局在设置显示上向上移动:无
- 如何在剪切/粘贴/移动后在contentEditable DIV中保留与XML相关的数据
- 如果我在页面之间移动,Jquery 数据表行事件会卡住
- 如果上一个
为空,则向上移动表数据 d - 如何在页面之间导航后停止jquery移动中的重复数据
- 尝试在移动优先应用程序中从 SQL 数据库获取数据时出错
- 如何使用jquery移动数据块
- 在线/离线数据更新移动最佳实践
- 从页面上点击的链接中删除数据,然后移动到下一页&在CasperJS中重复
- 当一个字段已满时,将数据条目移动到下一个字段-JS制表
- 当移动到“外部”版本时,“内部”成功 AJAX 中的“数据”变量应该更改为什么
- 如何在移动屏幕上居中“获取数据”
- 使用数据发布更改页面 jQuery 移动
- 数据表移动行按钮
- 来自第三方身份验证的 Firebase 身份验证数据在移动 safari iOS8 中始终为空
- 视频标签仅在移动设备上调用一个字节的数据(Node.js)
- 将一些 JSON 数据移动到唯一的 Div 中
- 将数据移动到$.ajax's out
- 将数组数据移动到分部中
- 如何在不移动过滤功能的情况下将一组过滤后的数据移动到另一个工作表