2010-02-28 10 views

Antwort

20

ich das tinysort Plugin verwenden würde:

http://tinysort.sjeiti.com/

In Ihrem Fall wäre es so etwas wie:

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

+1

Dies. Ich musste meinen Stolz schlucken und zugeben, dass ich nicht herausfinden konnte, wie man 'sort()' funktionierte, egal welche Funktion ich ihm gab. Ich integriere TinySort und mein Leben war nie einfacher. –

+2

Für diejenigen, die dies von Google finden, glaube ich, dass das obige Beispiel veraltet sein könnte. Was mit diesem Plugin für mich funktionierte: 'tinysort ('# container> div', {attr: 'id'})' – That1Guy

8

Es gibt Plugins und dergleichen Sortierung von Elementen zu tun . Wenn Sie die DOM-Elemente tatsächlich neu ordnen möchten, sollten Sie wahrscheinlich eines davon verwenden.

Wenn Sie nur eine sortierte Liste der divs möchten, können Sie Javascript verwenden - da Arrays mit einer benutzerdefinierten Vergleichsfunktion sortiert werden können. Sie können den ausgewählten Satz von <div> s mit toArray() in ein Array konvertieren und sie dann mit diesem Mechanismus sortieren.

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

Sie könnten auch die detach() und appendTo() Methode verwenden, um zu entfernen und die Elemente in sortierter Reihenfolge wieder einsetzen. Dies ist jedoch möglicherweise nicht der effizienteste Weg, um die DOM-Elemente neu zu ordnen.

+0

Danke! Es ist sehr nützlich. – ababa

+0

Dies ist die richtige Antwort, besser als Plugins. – nickspiel

0

Versuchen Sie mein Jquery-Plugin $.toArrayouter, mit Underscore-Bibliothek.

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

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

Verwandte Themen