How to sort a select option alphabetically with jquery?

1

I have a select option to list through a each in jquery what I want to do now and sort this each in alphabetical order when listed.

Jquery

$(document).on("click", ".btn-add-agent-proximo", function(e) {
if($('#add_agent').is(':checked')){ 
  $('#modal-add-agent').modal('hide'); 

  var id_agente_pai = <?= Auth::user()->id ?>

  $.ajax({
      type: "POST",
      url: "admin/list_agent",
      headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
      data: { id_agente_pai : 'id_agente_pai'},
      dataType: 'json'
  }).done(function( data ) {
      $.each(data.parents, function( key, parents ) {
          $('#parent').append('<option value="'+parents.id+'"><span>ID('+parents.id+') </span>'+parents.username+'</option>');
      });
      $.each(data.currencies, function( key, currencies ) {
          $('#currency').append('<option value="'+currencies.id+'">'+currencies.code+'</option>');
      });
      $.each(data.funcoes, function( key, funcoes ) {
          $('#funcoes').append('<option value="'+funcoes.id+'">'+funcoes.nome+'</option>');
      });

  }).fail(function(data) {
      toastr.error('Ocorreu um erro!');
  });

  $('#modal-add-agent-modal').modal('show');

  $('#modal-add-agent-modal').on('hide.bs.modal', function () {
    $('#parent').empty();
    $('#currency').empty();
    $('#funcoes').empty();
  });

}else if($('#add_jogador').is(':checked')){ 
  $('#modal-add-agent').modal('hide'); 

    $.ajax({
      type: "POST",
      url: "admin/list_agent",
      headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
      data: { id_agente_pai : 'id_agente_pai'},
      dataType: 'json'
  }).done(function( data ) {
      $.each(data.parents, function( key, parents_jogador ) {
          $('#parent_jogador').append('<option value="'+parents_jogador.id+'"><span>ID('+parents_jogador.id+') </span>'+parents_jogador.username+'</option>');
      });

  }).fail(function(data) {
      toastr.error('Ocorreu um erro!');
  });

  $('#modal-add-jogador-modal').modal('show');

  $('#modal-add-jogador-modal').on('hide.bs.modal', function () {
    $('#parent_jogador').empty();
  });
}
});

What I want to list and select with id parents

    
asked by anonymous 02.05.2017 / 17:55

1 answer

0

Maybe just by using sort solve your problem!

data.parents.sort(function (a, b) {

     if (a.username === b.username) return 0;

     return a.username > b.username ? 1 : -1;
})

$.each(data.parent, function () {
   // ...
});

The sort function uses an anonymous function as callback that compares username values. The array values will be sorted according to the 1 , -1 or 0 returns.

Read more here: #

02.05.2017 / 17:59