2010-04-23 5 views
3

je le code suivant:jQuery organiser la base de l'ordre de li sur #ID

<ul> 
<li id="project_25">Proj Something</li> 
<li id="project_26">Proj Blah</li> 
<li id="project_27">Proj Else</li> 
<li id="project_31">Proj More</li> 
... 
</ul> 

Est-il possible d'organiser ces LIs, inverser leur ordre, en fonction de l'ID LI?

Quelque chose comme:

<ul> 
<li id="project_31">Proj More</li> 
<li id="project_27">Proj Else</li> 
<li id="project_26">Proj Blah</li> 
<li id="project_25">Proj Something</li> 
... 
</ul> 

Merci.

+2

Cette méthode peut être appliquée probablement http://stackoverflow.com/questions/1134976/jquery-sort-list-items-alphabetically – cletus

Répondre

5
var arr = $('li').get();  
arr.reverse(); 

$.each(arr, function(i,v){ 
    $('ul').append(this); 
}); 
+0

Thanx Andy, cela fonctionne! – Mircea

2

S'il vous plaît essayez le code ci-dessous:

var mylist = $('ul'); 
var listitems = mylist.children('li').get(); 
listitems.sort(function(a, b) { 
    var compA = $(a).text().toUpperCase(); 
    var compB = $(b).text().toUpperCase(); 
    return (compA < compB) ? -1 : (compA > compB) ? 1 : 0; 
}) 
$.each(listitems, function(idx, itm) { mylist.append(itm); }); 

J'ai trouvé ce here.

HTH

+0

Cela réorganiser sur l'ordre alphabétique. Je vais essayer de le modifier et vous laisser savoir – Mircea

+0

C'était juste un échantillon pour vous donner une idée. Au lieu d'obtenir text(), essayez d'obtenir le nombre (en le divisant), puis comparez-le. HTH – Raja

+0

Désolé celui-ci ne fonctionne que pour le texte pas ID, je ne pouvais pas le faire avec attr – Mircea

Questions connexes