使用jQuery按字母顺序对选项元素进行排序

Bomortensen:

我正在尝试按字母顺序理解option元素内的排序元素select理想情况下,我想将此功能作为一个单独的函数,在这里我可以只传递select元素,因为当用户单击某些按钮时需要对它进行排序。

我在高低处搜寻了一种执行此操作的好方法,但找不到任何对我有用的方法。

选项元素应按文本而不是值按字母顺序排序。

这有可能吗?

尖的:

我要做的是:

  1. 将每个文本和值提取<option>到对象数组中;
  2. 对数组排序;
  3. <option>按顺序使用数组内容更新元素。

要使用jQuery,您可以执行以下操作:

var options = $('select.whatever option');
var arr = options.map(function(_, o) { return { t: $(o).text(), v: o.value }; }).get();
arr.sort(function(o1, o2) { return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0; });
options.each(function(i, o) {
  o.value = arr[i].v;
  $(o).text(arr[i].t);
});

这是一个工作的jsfiddle。

编辑 -如果要排序而忽略字母大小写,则可以在比较之前使用JavaScript .toUpperCase().toLowerCase()函数:

arr.sort(function(o1, o2) {
  var t1 = o1.t.toLowerCase(), t2 = o2.t.toLowerCase();

  return t1 > t2 ? 1 : t1 < t2 ? -1 : 0;
});

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ReactJS:按字母顺序对选项进行排序

javascript使用innerHTML按字母顺序对DOM元素进行排序

按字母顺序对JComboBox元素进行排序

如何使用jQuery按字母顺序对列表进行排序?

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

按字母顺序对页面上的元素进行排序

按下拉列表元素的字母顺序对API结果进行排序(请仅使用Javascript)

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

在jQuery或PHP中使用多个值按字母顺序对JSON / Array进行排序

如何使用 jQuery 按字母顺序对 HTML 中的列表进行排序?

按字母顺序排序Tkinter选项菜单?

使用JavaScript按字母顺序对丹麦语进行排序?

使用 AngularJS 按字母顺序对用户输入进行排序

如何使用antd按字母顺序对表进行排序

按字母顺序使用 JSON 数据对 HTML 表进行排序

使用compareTo()方法按字母顺序对列表进行排序

ElasticSearch使用分数按字母顺序对查询进行排序

如何使用 QSortFilterProxyModel 按字母顺序对列表项进行排序?

使用棉花糖按字母顺序对字段值进行排序

使用Shell按字母顺序对多行记录进行排序

如何使用Meteor按字母顺序对用户进行排序?

使用sort方法按字母顺序对数组进行排序

使用XSLT 3.0按字母顺序对KML地标进行排序

使用.compareTo()按字母顺序对ArrayList <String>进行排序

使用特定符号按字母顺序对 TreeMap 进行排序

使用jQuery按值对选项进行排序

PHP:按字母顺序对 ZIP 进行排序

按字母顺序对XML进行排序

按字母顺序对NSArray进行排序