排序optgroup并选择选项

时间:2018-05-02 18:55:26

标签: javascript jquery

我正在尝试订购我的选择框和optgroup。 我有它排序我的选择选项。需要帮助对optgroup进行排序。然后对选项进行排序。

jsfiddle link

function sort_select(as, bs){
var a, b, a1, b1, i= 0, n, L,
rx=/(\.\d+)|(\d+(\.\d+)?)|([^\d.]+)|(\.\D+)|(\.$)/g;
if(as=== bs) return 0;
a= as.toLowerCase().match(rx);
b= bs.toLowerCase().match(rx);
L= a.length;
while(i<L){
    if(!b[i]) return 1;
    a1= a[i],
    b1= b[i++];
    if(a1!== b1){
        n= a1-b1;
        if(!isNaN(n)) return n;
        return a1>b1? 1:-1;
    }
}
return b[i]? -1:0;
}

1 个答案:

答案 0 :(得分:1)

$(document).ready(function () {

    function byLabel(a,b){
        return (a.label < b.label) ? -1 : (a.label > b.label) ? 1 : 0;
    }

    var sortedOpts = $('#products').children('optgroup');
    sortedOpts.sort(byLabel);
    $('#products').append(sortedOpts);

    $('#products optgroup').each(function(o,i){
      var so = $(this).children().sort(byLabel);
      $(this).append(so);
    })

});

https://jsfiddle.net/xyk2L4w1/12/