我如何使用jQuery以某种方式移动表行元素?

时间:2010-01-14 01:34:14

标签: jquery html dom

我有一张这样的表:

<table>
  <tr>  
    <td>something</td>
  </tr>
  <tr>
    <td>something else</td>
  </tr>
</table>

现在基于td中的id我想要移动tr,以便它们处于id所持有的位置。关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:2)

您可以使用parent()函数选择tr。例如,

$("#td-id").parent().appendTo("table");

将包含id为“td-id”的td的tr移动到表格底部。

答案 1 :(得分:1)

不适合大型桌子的订购,但是当我一会儿写这篇文章时,这对我有用。您将订购不同的东西(行ID),因此您必须更改它以满足您的需求。

第一个参数是您要排序的表,第二个参数是您要排序的列。

您将更改所有cIndex内容以改为使用您的rowid。

function SortTable(stable, cIndex)
{
    var rows = $(stable).find("tr");
    var count = $(rows).size();

    for (var i = 0; i < count - 1; i++)
    {
        var r1 = $(rows[i]);
        var r2 = $(rows[i + 1]);

        var td1 = $(r1).find("td")[cIndex];
        var td2 = $(r2).find("td")[cIndex];

        var d1 = parseInt($(td1).html());
        var d2 = parseInt($(td2).html());

        if (d1 < d2)
        {
            var t = rows[i];
            rows[i] = rows[i + 1]
            rows[i + 1] = t;
            i = -1;
        }
    }

    var tbody = $(stable);
    tbody.empty();
    for (var i = 0; i < count; i++)
    {
        $(tbody).append(rows[i]);
    }
}