Javascript select2jqueryplugin:有没有办法按字母顺序对标签列表进行排序?
我使用的是Select2 plugin(),正如你在截图中看到的标签列表所示,它们没有按字母顺序列出,我希望能够做到这一点 编辑:这是我目前拥有的,但我想通过“文本”而不是“id”对数据(@appTags)进行排序,而不是查询: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) {
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版起,此选项现在称为分拣机
。