如何按字母顺序对select2(jQuery插件)选项进行排序?

拉珠28

我想按字母顺序select2选项进行排序。我有以下代码,想知道如何实现:

<select name="list" id="mylist" style="width:140px;">
   <option>United States</option>
   <option>Austria</option>
   <option>Alabama</option>    
   <option>Jamaica</option>
   <option>Taiwan</option>
   <option>canada</option>
   <option>palau</option>
   <option>Wyoming</option>
</select>


$('#mylist').select2({
  sortResults: function(results) { return results.sort(); } 
});

我想通过“文本”对数据进行排序。

奥斯卡·加西亚(OscarGarcia)

Select2 API v3.x(sortResults

您可以使用sortResultscallback选项对元素进行排序String.localeCompare()

$( '#mylist' ).select2({
  /* Sort data using localeCompare */
  sortResults: data => data.sort((a, b) => a.text.localeCompare(b.text)),
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.4/select2.min.css" integrity="sha256-ijlUKKj3hJCiiT2HWo1kqkI79NTEYpzOsw5Rs3k42dI=" crossorigin="anonymous" /><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.4/select2.min.js" integrity="sha256-7A2MDY2eGSSUvgfbuH1IdzYk8qkEd3uzwiXADqPDdtY=" crossorigin="anonymous"></script>
<select name="list" id="mylist" style="width:140px;">
   <option>United States</option>
   <option>Austria</option>
   <option>Alabama</option>    
   <option>Jamaica</option>
   <option>Taiwan</option>
   <option>canada</option>
   <option>palau</option>
   <option>Wyoming</option>
</select>

Select2 API v4.0(sorter

您可以使用sorter回调选项对元素进行排序

$('#mylist').select2({
    sorter: data => data.sort((a, b) => a.text.localeCompare(b.text)),
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.css" integrity="sha256-xqxV4FDj5tslOz6MV13pdnXgf63lJwViadn//ciKmIs=" crossorigin="anonymous" /><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.min.js" integrity="sha256-FA14tBI8v+/1BtcH9XtJpcNbComBEpdawUZA6BPXRVw=" crossorigin="anonymous"></script>
<select name="list" id="mylist" style="width:140px;">
   <option>United States</option>
   <option>Austria</option>
   <option>Alabama</option>    
   <option>Jamaica</option>
   <option>Taiwan</option>
   <option>canada</option>
   <option>palau</option>
   <option>Wyoming</option>
</select>


没有jQuery

我有另一种通用方法(可以使用值或属性对元素进行排序),而无需使用jQuery:

var select = document.getElementById("mylist");
var options = [];
// Get elements to sort
document.querySelectorAll('#mylist > option').forEach(
  option => options.push(option)
);
// Empty select
while (select.firstChild) {
    select.removeChild(select.firstChild);
}
// Sort array using innerText (of each option node)
options.sort(
  (a, b) => a.innerText.localeCompare(b.innerText)
);
// Add the nodes again in order
for (var i in options) {
    select.appendChild(options[i]);
}
<select name="list" id="mylist" style="width:140px;">
   <option>United States</option>
   <option>Austria</option>
   <option>Alabama</option>    
   <option>Jamaica</option>
   <option>Taiwan</option>
   <option>canada</option>
   <option>palau</option>
   <option>Wyoming</option>
</select>

使用jQuery

感谢@Narendra Sisodia的jQuery技巧:

/* Get options */
var selectList = $('#mylist > option');
/* Order by innerText (case insensitive) */
selectList.sort(
  (a, b) => a.innerText.localeCompare(b.innerText)
);
/* Re-do select HTML */
$('#mylist').html(selectList);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<select name="list" id="mylist" style="width:140px;">
   <option>United States</option>
   <option>Austria</option>
   <option>Alabama</option>    
   <option>Jamaica</option>
   <option>Taiwan</option>
   <option>canada</option>
   <option>palau</option>
   <option>Wyoming</option>
</select>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Select2 jQuery插件:是否可以按字母顺序对标签列表进行排序?

来自分类Dev

如何按字母顺序对LinkedList进行排序?

来自分类Dev

如何使用 gulp-json-sort 插件按逆字母顺序对 json 进行排序

来自分类Dev

如何按字母顺序对字母数字列表进行排序

来自分类Dev

如何使用javascript jquery按字母顺序对表中的默认td进行排序

来自分类Dev

如何按字母顺序对字符串的ArrayList进行排序?

来自分类Dev

如何按字母顺序对Ruby Hash进行排序

来自分类Dev

如何按字母顺序对模板中的对象列表进行排序?

来自分类Dev

如何按字母顺序对字符串进行排序

来自分类Dev

Play框架:如何按字母顺序对JSON进行排序

来自分类Dev

如何按字母顺序对字符串进行排序

来自分类Dev

如何按字母顺序对字符串进行排序

来自分类Dev

如何按字母顺序对列表视图进行排序

来自分类Dev

如何用液体按字母顺序对类别进行排序?

来自分类Dev

如何按字母顺序对HashMap条目进行排序?

来自分类Dev

如何按字母顺序对CSV文件进行排序?

来自分类Dev

如何对Laravel表格进行排序::按字母顺序选择

来自分类Dev

如何强制tmux按字母顺序对会话进行排序?

来自分类Dev

按字母顺序对 WordPress 类别进行排序时如何忽略“the”

来自分类Dev

如何按字母顺序对索引进行排序

来自分类Dev

Angular 5:如何按字母顺序对 Observable 进行排序?

来自分类Dev

如何按字母顺序对 Github 用户 API 进行排序

来自分类Dev

如何在 angular2+ 中按字母顺序对数组进行排序、分组和划分

来自分类Dev

Django 渲染:如何在 Select2 Jquery 插件中实例化所选项目

来自分类Dev

按字母顺序对ListView的元素进行排序

来自分类Dev

Android按字母顺序对ListView进行排序

来自分类Dev

MySQL按字母顺序对记录进行排序

来自分类Dev

按字母顺序对组合框进行排序

来自分类Dev

按字母顺序对字典进行排序

Related 相关文章

  1. 1

    Select2 jQuery插件:是否可以按字母顺序对标签列表进行排序?

  2. 2

    如何按字母顺序对LinkedList进行排序?

  3. 3

    如何使用 gulp-json-sort 插件按逆字母顺序对 json 进行排序

  4. 4

    如何按字母顺序对字母数字列表进行排序

  5. 5

    如何使用javascript jquery按字母顺序对表中的默认td进行排序

  6. 6

    如何按字母顺序对字符串的ArrayList进行排序?

  7. 7

    如何按字母顺序对Ruby Hash进行排序

  8. 8

    如何按字母顺序对模板中的对象列表进行排序?

  9. 9

    如何按字母顺序对字符串进行排序

  10. 10

    Play框架:如何按字母顺序对JSON进行排序

  11. 11

    如何按字母顺序对字符串进行排序

  12. 12

    如何按字母顺序对字符串进行排序

  13. 13

    如何按字母顺序对列表视图进行排序

  14. 14

    如何用液体按字母顺序对类别进行排序?

  15. 15

    如何按字母顺序对HashMap条目进行排序?

  16. 16

    如何按字母顺序对CSV文件进行排序?

  17. 17

    如何对Laravel表格进行排序::按字母顺序选择

  18. 18

    如何强制tmux按字母顺序对会话进行排序?

  19. 19

    按字母顺序对 WordPress 类别进行排序时如何忽略“the”

  20. 20

    如何按字母顺序对索引进行排序

  21. 21

    Angular 5:如何按字母顺序对 Observable 进行排序?

  22. 22

    如何按字母顺序对 Github 用户 API 进行排序

  23. 23

    如何在 angular2+ 中按字母顺序对数组进行排序、分组和划分

  24. 24

    Django 渲染:如何在 Select2 Jquery 插件中实例化所选项目

  25. 25

    按字母顺序对ListView的元素进行排序

  26. 26

    Android按字母顺序对ListView进行排序

  27. 27

    MySQL按字母顺序对记录进行排序

  28. 28

    按字母顺序对组合框进行排序

  29. 29

    按字母顺序对字典进行排序

热门标签

归档