87 votes

Trier les éléments d'options par ordre alphabétique à l'aide de jQuery

J'essaie de comprendre le triage option à l'intérieur d'un select par ordre alphabétique. Idéalement, j'aimerais que cela soit une fonction distincte dans laquelle je peux simplement passer l'élément de sélection, car il doit être trié lorsque l'utilisateur clique sur certains boutons.

J'ai cherché partout une bonne façon de procéder, mais je n'ai rien trouvé qui fonctionne pour moi.

Les éléments d'option doivent être triés par ordre alphabétique de texte, et non de valeur.

Cela est-il possible d'une manière ou d'une autre ?

1voto

Dr Fred Points 31

La réponse de Malakgeorge est intéressante et peut être facilement intégrée à une fonction jQuery :

$.fn.sortSelectByText = function(){
    this.each(function(){
        var selected = $(this).val(); 
        var opts_list = $(this).find('option');
        opts_list.sort(function(a, b) { return $(a).text() > $(b).text() ? 1 : -1; });
        $(this).html('').append(opts_list);
        $(this).val(selected); 
    })
    return this;        
}

0voto

warmth Points 179

Cela vous donnera la possibilité de les réorganiser manuellement si vous en avez besoin.

Comment ordonner dynamiquement une liste <option select> à l'aide de JQuery ?

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