Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

130
Vistas
Jquery sort data in select

I have written the following code which is working when there is alphabetic data, how can I make it work uniquely irrespective of alphabets or numbers

function sortList(selectId) {
  var options = $(selectId + ' option');
  var arr = options.map(function(_, o) {
    return {
      t: $(o).text(),
      v: o.value
    };
  }).get();
  arr.sort(function(o1, o2) {
    return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0;
  });
  options.each(function(i, o) {
    o.value = arr[i].v;
    $(o).text(arr[i].t);
  });
}
$(document).ready(function() {
  sortList("#whatever");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='whatever'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='10'>10</option>
</select>

It is getting sorted as 1,10,2 where I am looking it like 1,2,10. How to make this function unique to work for all scenarios

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

This question is a duplicate of How can I sort elements by numerical value of data attribute?
Here's a snippet with the answer modified from that question to match this question

var element = $("#whatever");
element.find("option").sort(function(a, b) {
    return +a.getAttribute('value') - +b.getAttribute('value');
}).appendTo(element);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id='whatever'>
    <option value='1'>1</option>
    <option value='6'>6</option>
    <option value='9'>9</option>
    <option value='3'>3</option>
    <option value='10'>10</option>
</select>

I just copied my snipped to your jsfiddle and it worked Here it is https://jsfiddle.net/g3cjbzey/

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda