反转表行
我想用jQuery反转表tbody行 。
是)我有的:
TITLE A TITLE B
(…)继续在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()) });
我写了一个名为$.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
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