2011-07-15 22 views
7

मैं एक तालिका में दो पंक्तियों का क्रम बदलना चाहता हूं।jQuery: तालिका के दो पंक्तियों के क्रम को बदलें

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

किसी भी विचार

मैं इस कोड है?

सादर

Javi

उत्तर

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")); 
प्रयास करें
संबंधित मुद्दे