jQuery sort()

Hledal jsem způsob jak elegantně seřadit zvolené prvky ve stránce s pomocí jQuery. Náhodou jsem se dostal na diskuzní fórum, které popisovalo rozšíření jQuery o metodu sort().

jQuery.fn.sort = function()
{
  return this.pushStack( [].sort.apply( this, arguments ), []);
};

function sortAlpha(a,b)
{
    return a.innerHTML > b.innerHTML ? 1 : -1;
};

$('ol li').sort(sortAlpha).appendTo('ol');

Překvapivý byl ovšem jeden z komentářů níže, nepodařilo se mi totiž onu vlastnost nalézt v dokumentaci jQuery...

Actually, with jQuery 1.3.2 this is unecessary. All you have to do is create your custom sorting function.
function sortAlpha() { … }
$(“ol.tosort li”).sort(sortAlpha).appendTo(“ol.sorted”);

Praktická ukázka

Poznámka: toto obecné řazení nepokrývá seřazení prvků obsahujících například znaky s diakritikou. Viz element "čepice", který se přemístí na konec seznamu.

$('#sort_example li').sort(function(a,b){return a.innerHTML > b.innerHTML ? 1 : -1;}).appendTo('#sort_example');

blog comments powered by Disqus