2011-07-15 14 views
7

Chcę zmienić kolejność dwóch wierszy w tabeli.jQuery: zmiana kolejności dwóch wierszy tabeli

mam ten kod:

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()); 

To drukuje to:

<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>​ 

jakiś pomysł?

Pozdrowienia

Javi

Odpowiedz

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

row.insertAfter(row.next()); 

Przykład:http://jsfiddle.net/hkkKs/

Zależy jaki jesteś kierowania. Jeśli pierwszy ma moduł obsługi kliknięć, potrzebujesz powyższego kodu.

Ponadto, metoda closest()[docs] jest bezpieczniejszym sposobem kierowania na przodka <tr>. To może być problem.

Jeśli chcesz, aby było odwrotnie, twój kod by zadziałał, ale ponownie użyj zamiast tego .closest().

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

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

przykład:http://jsfiddle.net/hkkKs/1/

0

Spróbuj

$("tableSelector").append($("tableSelector").find("tr:first")); 
Powiązane problemy