我有jQuery,但不确定是否有内置的排序助手。我可以为每个项目的text,value和selected属性创建一个2D数组,但是我认为内置的javascript不能Array.sort()正常工作。 问题来源于stack overflow
将选项提取到一个临时数组中,进行排序,然后重建列表:
var my_options = $("#my_select option"); var selected = $("#my_select").val();
my_options.sort(function(a,b) { if (a.text > b.text) return 1; if (a.text < b.text) return -1; return 0 })
$("#my_select").empty().append( my_options ); $("#my_select").val(selected); Mozilla的排序文档(特别是compareFunction)和Wikipedia的“排序算法”页面相关。
如果要使排序不区分大小写,请替换text为text.toLowerCase()
上面显示的排序功能说明了如何进行排序。准确地对非英语语言进行排序可能很复杂(请参阅Unicode排序规则算法)。在sort函数中使用localeCompare是一个很好的解决方案,例如:
my_options.sort(function(a,b) { return a.text.localeCompare(b.text); });
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。