42 votes

Quel est le moyen le plus simple de commander un <UL>/<OL> en jQuery ?

Je suis à la recherche d'un exemple de code permettant de trier les éléments d'une liste HTML par ordre alphabétique. Quelqu'un peut-il m'aider ?

Voici un exemple de liste de personnes avec lesquelles vous pouvez travailler :

<ul class="alphaList">
    <li>apples</li>
    <li>cats</li>
    <li>bears</li>
</ul>

94voto

Chatu Points 2910
var items = $('.alphaList li').get();
items.sort(function(a,b){
  var keyA = $(a).text();
  var keyB = $(b).text();

  if (keyA < keyB) return -1;
  if (keyA > keyB) return 1;
  return 0;
});
var ul = $('.alphaList');
$.each(items, function(i, li){
  ul.append(li);
});

7voto

Ergec Points 3199

Pour les futurs googleurs, j'ai trouvé ce plugin très utile. Il a l'option de définir l'ordre des caractères pour les langues non-latines.

$('.submenu > li').tsort({
    charOrder: 'abcçdefgğhıijklmnoöprsştuüvyz'
});

Pour les caractères anglais uniquement, il n'est pas nécessaire de définir l'option

$('.submenu > li').tsort();

Démo http://jsfiddle.net/ergec/EkScy/

Site web http://tinysort.sjeiti.com/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X