2010-02-28 12 views

Odpowiedz

20

bym użyć wtyczki tinysort:

http://tinysort.sjeiti.com/

W twoim przypadku to byłoby coś takiego:

$("#container > div").tsort("",{attr:"id"});

+1

to. Musiałem połknąć moją dumę i przyznać, że nie mogłem wymyślić, jak uruchomić "sort()" bez względu na to, jaką funkcję mu przekazałem. Integruje TinySort i moje życie nigdy nie było łatwiejsze. –

+2

Dla osób, które znalazły to w Google, uważam, że powyższy przykład może być nieaktualny. Co działało dla mnie z tą wtyczką: 'tinysort ('# container> div', {attr: 'id'})' – That1Guy

8

Istnieją wtyczki i jak zrobić sortowania elementów . Jeśli planujesz ponownie zamawiać elementy DOM, prawdopodobnie powinieneś użyć jednego z nich.

Jeśli chcesz posortowaną listę elementów div, możesz użyć Javascript - ponieważ tablice mogą być sortowane przy użyciu niestandardowej funkcji porównania. Możesz przekonwertować wybrany zestaw <div> s na tablicę przy użyciu toArray(), a następnie posortuj je za pomocą tego mechanizmu.

$('#container > div').toArray().sort(function(a,b) { a.id - b.id }); 

Można również użyć metody detach() i appendTo() usunąć i ponownie wstawić elementów posortowanych. Jednak może to nie być najbardziej efektywny sposób na ponowne zamówienie elementów DOM.

+0

Dzięki! To jest bardzo użyteczne. – ababa

+0

To jest poprawna odpowiedź, bardziej niż poleganie na wtyczkach. – nickspiel

0

Wypróbuj moją wtyczkę jquery $.toArrayouter, używając biblioteki podkreślników.

$('#container').html(_.sortBy($('#container>div').toArrayouter(),function (name) {return name}).join('')) 

Demo: http://jsfiddle.net/abdennour/fDZjR/1/

Powiązane problemy