我正在尝试订购我的选择框和optgroup。 我有它排序我的选择选项。需要帮助对optgroup进行排序。然后对选项进行排序。
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;
}
答案 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);
})
});