Tri Sélectionner une boîte avec jQuery
J'ai un select case sur un formulaire, qui porte un différentiel, l'attribut rel.
J'ai une fonction qui permet de trier les options par thier .texte() la valeur, en alphabetcal commande.
Ma question est, avec jQuery, comment puis-je trier en ordre croissant à l'aide de l'attribut rel ?
<option rel="1" value="ASHCHRC">Ashchurch for Tewkesbury </option>
<option rel="2" value="EVESHAM">Evesham </option>
<option rel="3" value="CHLTNHM">Cheltenham Spa </option>
<option rel="4" value="PERSHOR">Pershore </option>
<option rel="5" value="HONYBRN">Honeybourne </option>
<option rel="6" value="MINMARS">Moreton-in-Marsh </option>
<option rel="7" value="GLOSTER">Gloucester </option>
<option rel="8" value="GTMLVRN">Great Malvern </option>
<option rel="9" value="MLVRNLK">Malvern Link </option>
ma fonction de tri: var objet; peut-être l'une des nombreuses listes de sélection dans le formulaire.
$(object).each(function() {
//Keep track of the selected option.
var selectedValue = $(this).val();
//sort it out
$(this).html($("option", $(this)).sort(function(a, b) {
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
}));
//Select one option.
$(this).val(selectedValue);
});
source d'informationauteur Deano
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez trier par rel, vous devriez changer votre fonction
modifier avec parseInt()
Vous pouvez utiliser le .attr() pour obtenir la valeur d'un attribut dans jQuery. Voir http://api.jquery.com/attr/ pour plus d'info.
Essayez ceci:
Référence pour l'avenir, l'on a accepté la réponse n'est pas complète si
option
a données ou les accessoires (par ex..prop('selected', true)
). Ils seront enlevés après l'utilisation de.html()
.La fonction ci-dessous est sans doute pas optimisé, mais c'est correctement :
De l'essayer.
J'avais besoin d'une solution semblable, puis fait quelques changements à la fonction d'origine et il a bien fonctionné.