2017-10-19 26 views
-1

J'ai actuellement un problème, j'ai un sous-menu avec le code suivant:Ordre alphabétique dans le menu js?

load_sub_menu_disciplines: function() { 
    $.ajax({ 
headers: { 
    "Accept": "application/json; charset=utf-8", 
    "Content-Type": "application/json; charset=utf-8" 
}, 
type: 'GET', 
url: 'api/catalog_system/pub/specification/fieldvalue/22', 
success: function(data) { 
    $.each(data, function(i, ele) { 
     if (ele.IsActive) { 
      $('#disciplinas .box-link .nav').append($('<li/>').append($('<a/>').attr('href', '/' + ele.Value + '?map=specificationFilter_22&O=OrderByReleaseDateDESC').text(ele.Value))) 
     } 
    }); 
    $('#disciplinas a:empty').remove(); 
}, 
error: function(error) { 
    console.log(error); 
} 

});

Et j'ai besoin que vous soyez triés par ordre alphabétique, mais je n'ai aucune idée de comment le faire. Je comprends que je devrais le faire avec une fonction de tri, mais je ne sais pas comment unifier le code. Im noob in js -.-

+0

https://developer.mozilla.org/fr-fr/docs/Web/JavaScript/Reference/Global_Objects/Array/sort –

Répondre

-1

La manière la plus simple de gérer cela est de trier vos données avant de les ajouter au DOM.

success: function(data) { 
    data.sort(function(a, b) { 
     if (a.Value == b.Value) { return 0; } 
     if (a.Value > b.Value) { return 1; } 
     return -1; 
    }); 

    $.each(data, function(i, ele) { 
     if (ele.IsActive) { 
      $('#disciplinas .box-link .nav') 
       .append($('<li/>') 
       .append($('<a/>') 
       .attr('href', '/' + ele.Value + '?map=specificationFilter_22&O=OrderByReleaseDateDESC') 
       .text(ele.Value))) 
     } 
    }); 
    $('#disciplinas a:empty').remove(); 
},