使用jQuery移动表行

时间:2011-10-14 00:39:06

标签: jquery html-table

我有这段代码:

<table>
 <tr id="a"><td>A</td></tr>
 <tr id="d"><td>D</td></tr>
 <tr id="e"><td>E</td></tr>
 <tr id="b"><td>B</td></tr>
 <tr id="c"><td>C</td></tr>
</table>

如何使用jQuery将行按顺序排列?


更新:我需要使用移动功能而不是排序功能,因为真实的ID不是字母。对困惑感到抱歉。我想做这样的事情:

$("#a").after(rows_b_and_c)

但我不知道如何获取行。

2 个答案:

答案 0 :(得分:2)

如果您没有附加到<td>的事件且内容只是文本,则会执行以下操作:

var tds = $('table tr').sort(function(a,b){
    return $('td:eq(0)',a).text() > $('td:eq(0)',b).text();
});
$('table').html(tds);

jsfiddle demo


这取决于......你会如何订购?请更具体。

会给你一个提示,你可能想看看:

.after() 在匹配元素集中的每个元素之后插入由参数指定的内容。

.before() 在匹配元素集中的每个元素之前插入由参数指定的内容。

.insertAfter() 在目标之后插入匹配元素集中的每个元素。

.insertBefore() 在目标之前插入匹配元素集中的每个元素。


你很有趣。 :P

你说你知道那些功能然后你没有解决问题。

无论如何,这里有一些方法:http://jsfiddle.net/reigel/7Pb6a/1/

答案 1 :(得分:1)

清洁剂:

var sortID = function(a,b){
    return a.id > b.id ? 1 : -1;
};
$('table tr').sort(sortID).appendTo('table');