如何重新排序表行(拖放)及其子行

时间:2010-06-07 18:19:17

标签: javascript html-table jquery-ui-sortable

我有一个看起来像这样的表(例子简化):

<table>
<tr class="lvl_1">
    <td>
    Level 1
    </td>
</tr>
<tr class="lvl_2">
    <td>
    Level 2
    </td>
</tr>
<tr class="lvl_3">
    <td>
    Level 3
    </td>
</tr>
<tr class="lvl_1">
    <td>
    Level 1
    </td>
</tr>
<tr class="lvl_2">
    <td>
    Level 2
    </td>
</tr>
<tr class="lvl_3">
    <td>
    Level 3
    </td>
</tr>

具有lvl_3类的行中的内容是前一个lvl_2行的子项,而lvl_2行是前一个lvl_1的子项。

如果数据是一个列表,它看起来像这样:

Level 1
-- Level 2
---- Level 3
Level 1
-- Level 2
---- Level 3

我现在正在寻求实现拖放排序功能,可以重新排列第1级和第2行。棘手的部分是,一旦我开始移动一行,相应的孩子(和孙子女,如果有的话)应该随之移动。

这是否可以使用当前标记,或者我是否必须重新排列代码?

1 个答案:

答案 0 :(得分:1)

我不清楚为什么你没有使用UL LI列表来实现这一点。你可以相信使用jQuerys删除和追加函数来轻松实现这个