javascript - 对 optgroup 进行排序并选择选项

标签 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;
}

最佳答案

$(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/

关于javascript - 对 optgroup 进行排序并选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141646/

相关文章:

javascript - r.js - 排除特定文件列表

javascript - uglify-js 可以删除 console.log 语句吗?

javascript - 延迟后运行的JS函数

javascript - 如何仅在 IE 中强制打开新窗口

javascript - 如何在没有额外库的情况下将 div 保存为图像?

javascript - 在 <a> 标签上创建 "title"属性

javascript - Google 脚本函数参数中需要引号吗?

javascript - 如何在页面加载、页面重新加载时调用 JavaScript 函数,不再调用

javascript - jQuery 抓取动态 data-* 属性的值

javascript - 如何合并两个对象中的数组?