反转表行

我想用jQuery反转表tbody行

是)我有的:

(…)继续在jsfiddle。

这就是我拥有的和我想要的: http//jsfiddle.net/ZaUrP/1/

小提琴

和其他人几乎一样,只有我使用.detach(),这是保持任何与tr完全相关的疯狂事件。 我还使用$ .makeArray来避免反转基础jQuery对象上的任何proto

 $(function(){ $("tbody").each(function(elem,index){ var arr = $.makeArray($("tr",this).detach()); arr.reverse(); $(this).append(arr); }); }); 

试试这个:-

使用.get()tbody获取tr的数组,并使用Array.reverse来反转元素并将其分配回来。

 var tbody = $('table tbody'); tbody.html($('tr',tbody).get().reverse()); 

小提琴

如果您有tr或任何包含元素的事件,您可以使用委托附加它,以便反转元素也可以委派它们。

演示

 $('tbody').each(function(){ var list = $(this).children('tr'); $(this).html(list.get().reverse()) }); 

演示--> http://jsfiddle.net/ZaUrP/5/

我写了一个名为$.reverseChildren的jQuery插件,它将反转给定元素的所有指定子元素。 由于他对$.makeArray深刻而有趣的使用,因此$.makeArray

我不仅颠倒了表格的行,而且还颠倒了列。

 (function($) { $.fn.reverseChildren = function(childSelector) { this.each(function(el, index) { var children = $.makeArray($(childSelector, this).detach()); children.reverse(); $(this).append(children); }); return this; }; }(jQuery)); $(function() { var tableCopy = $('#myTable').clone(true).attr('id', 'myTableCopy').appendTo( $('body').append('
').append($('

').html('Reversed Table'))); tableCopy.find('tr').reverseChildren('th, td'); // Reverse table columns tableCopy.find('tbody').reverseChildren('tr'); // Reverse table rows });

 * { font-family: "Helvetica Neue", Helvetica, Arial; } h1 { font-size: 16px; text-align: center; } table { margin: 0 auto; } th { background: #CCC; padding: 0.25em; } td { border: 1px solid #CCC; padding: 5px; } hr { margin: 12px 0; } 
  

Original Table

TITLE A TITLE B
Header A Header B Header C
Data 1A Data 1B Data 1C
Data 2A Data 2B Data 2C
Data 3A Data 3B Data 3C
Data 4A Data 4B Data 4C