2011-07-15 16 views
7

テーブル内の2つの行の順序を変更したい。これをjQuery:テーブルの2行の順序を変更する

console.log(position.parent().parent().prev()); 
console.log(position.parent().parent()); 
//I expected this line do the work, but no... 
$(this).parent().parent().prev().insertAfter($(this).parent().parent()); 

を印刷されています:

<tr>​ 
<td>​Element 1​</td>​ 
<td>​…​</td>​ 
<td>​2008-02-02​</td>​ 
<td class=​"jander" data-pos=​"0" data-category=​"1">​…​</td>​ 
</tr>​ 

<tr>​ 
<td>​Element 2​</td>​ 
<td>​…​</td>​ 
<td>​2007-02-02​</td>​ 
<td class=​"jander" data-pos=​"1" data-category=​"1">​…​</td>​ 
</tr>​ 

任意のアイデア

私はこのコードを持っていますか?

よろしく

ハビ

答えて

21
var row = $(this).closest('tr'); 

row.insertAfter(row.next()); 

例:http://jsfiddle.net/hkkKs/

はあなたがターゲットとしているどちらに依存します。最初のコードにクリックハンドラがある場合は、上のコードが必要です。

また、closest()[docs]メソッドは、祖先をターゲットにするより安全な方法です<tr>。それは問題だったかもしれません。

逆の場合は、コードは機能しますが、代わりに.closest()を使用してください。

$('span').click(function() { 
    var row = $(this).closest('tr'); 

    row.prev().insertAfter(row); 
}); 

例:http://jsfiddle.net/hkkKs/1/

0

この

$("tableSelector").append($("tableSelector").find("tr:first")); 
をお試しください
関連する問題