Javascript select2jqueryplugin:有没有办法按字母顺序对标签列表进行排序?

Javascript select2jqueryplugin:有没有办法按字母顺序对标签列表进行排序?,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我使用的是Select2 plugin(),正如你在截图中看到的标签列表所示,它们没有按字母顺序列出,我希望能够做到这一点 编辑:这是我目前拥有的,但我想通过“文本”而不是“id”对数据(@appTags)进行排序,而不是查询: scope.find('input[name=noun]').select2({ data: @appTags, sortResults: function(results, container, query) { if (query.term) {

我使用的是Select2 plugin(),正如你在截图中看到的标签列表所示,它们没有按字母顺序列出,我希望能够做到这一点

编辑:这是我目前拥有的,但我想通过“文本”而不是“id”对数据(@appTags)进行排序,而不是查询:

scope.find('input[name=noun]').select2({
  data: @appTags,
  sortResults: function(results, container, query) {
    if (query.term) {
      return results.sort();
    }
    return results;
  }
});
我的控制台在调试器中暂停的屏幕截图:

这是@appTags对象的一个图像,我想通过“文本”对其进行排序:


以下是使用JS内置排序功能的文档中的一些代码。我将其修改为按字母顺序排序,而不是像文档中那样按长度排序

$('#e22').select2({
    sortResults: function(results, container, query) {
        if (query.term) {
            // use the built in javascript sort function
            return results.sort();
        }
        return results;
    }
});

对于select2插件版本4.0

var customSorter = function(data) {
     return data.sort(function(a,b){
         a = a.text.toLowerCase();
         b = b.text.toLowerCase();
         if(a > b) {
             return 1;
         } else if (a < b) {
             return -1;
         }
         return 0;
     });
};
var customSorter=功能(数据){
返回数据。排序(函数(a,b){
a=a.text.toLowerCase();
b=b.text.toLowerCase();
如果(a>b){
返回1;
}否则如果(a
在select2版本4.0中,分拣参数名称更改为“分拣机” 现在将“customSorter”传递给插件

$(“#流派”)。选择2({tags:true,sorter:customSorter})

选择2 API v3.x(
sortResults
) 您可以使用
sortResults
callback选项对元素进行排序,该选项使用大小写不敏感的比较:

let tags=[{id:0,text:'androidtag'},{id:1,text:'origin'},{id:2,text:'Hobby'},{id:3,text:'is awesome'},{id:4,text:'age'},{id:5,text:'TestingDateTag'},{id:6,text:'name'},{id:7,text:'names'},{id:8,text:'birth'};
$('input[name=noum]')。选择2({
数据:标签,
标签:是的,
/*使用不区分大小写的比较对标记进行排序*/
sortResults:data=>data.sort((a,b)=>a.text.localeCompare(b.text)),
});


我该如何编辑它,以便从服务器获取数据而不是使用查询
scope.find('input[name=noon]')。select2({data:@appTags,placeholder:'Tag',sortResults:(results,container,query)->#使用内置的javascript排序函数return results.sort()if query.term results})
目前,您提出的解决方案在这种情况下不起作用。我是否将查询更改为数据?您发布的内容上的间距使阅读有点困难。你在用咖啡脚本吗?如果你可以尝试以正确的间隔再次发布,我们可以看到问题所在,但是从当前的帖子来看,似乎有些事情是无序的。只是在JS中添加了上面的代码,而不是Coffeescript。希望你能帮忙!Cheers Shard让我现在测试一下,但是因为你总是想要排序的结果,所以试试这个,它应该总是对结果排序,我认为包含query.term的示例只是在输入一些搜索文本之后才排序<代码>$('#e22')。选择2({sortResults:function(results){return results.sort();}})自Select2 4.0版起,此选项现在称为
分拣机