A much-requested on SO function for sorting DOM elements.
jQuery.fn.sortItems = function (key) {
var $items = [],
$wrap = $('<div/>'),
i, l;
this.each(function () {
$items.push([key(this), $(this)]);
});
if (!$items) {
return;
}
$wrap.insertBefore($items[0][1]);
$items.sort();
for (l = $items.length, i = l - 1; i >= 0; i--) {
$items[i][1].insertAfter($wrap);
}
$wrap.remove();
};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jQuery.fn.sortItems = function (key) {
var $items = [],
$wrap = $('<div/>'),
i, l;
this.each(function () {
$items.push([key(this), $(this)]);
});
if (!$items) {
return;
}
$wrap.insertBefore($items[0][1]);
$items.sort();
for (l = $items.length, i = l - 1; i >= 0; i--) {
$items[i][1].insertAfter($wrap);
}
$wrap.remove();
};
|
Demo.