菜单js中的字母顺序排列?

时间:2017-10-19 19:29:46

标签: javascript angularjs ajax frontend

我目前遇到问题,我有一个带有以下代码的子菜单:

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);
}

});

我需要按字母顺序排序,但我不知道该怎么做。我知道我应该使用排序功能,但我不知道如何统一代码。我在js -.-

中的noob

1 个答案:

答案 0 :(得分:-1)

处理此问题的最简单方法是在将数据附加到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();
},