jquery - 使用 jquery 对选择选项进行排序

标签 jquery sorting

我在这里资助了一个非常好的排序功能 How may I sort a list alphabetically using jQuery? 例如,除了看起来仅按第一个字符排序之外,它的工作几乎完美 如果你有类似的东西

0-5000
5001-10000
10001-15000
15001-20000

订单看起来像

0-5000
10001-15000
15001-20000
5001-10000

相反

0-5000
5001-10000
10001-15000
15001-20000

我为表单中的每个选择重新编写了函数

var mylist = $('#myformid select');

$(mylist).each(function (sorter, elm) { 
  var listitems = $(this).children('option.myoptionclass').get();
   listitems.sort(function(a, b) {
      var compA = $(a).text().toUpperCase();
      var compB = $(b).text().toUpperCase();
      return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
   })
     $.each(listitems, function(idx, itm) { 
          $(this).parent().append(itm); 
      });

});

这是一个实例

http://jsfiddle.net/sQsZQ/6/

欢迎任何帮助!

最佳答案

我编辑了你的 fiddle :http://jsfiddle.net/CBD33/2/ 我正在使用 parseInt 所以现在的比较如下所示:

listitems.sort(function(a, b) {
  var compA = $(a).text().toUpperCase();
  var compB = $(b).text().toUpperCase();
  compA = (parseInt(compA,10) || compA)
  compB = (parseInt(compB,10) || compB)              


  return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
})

如果提供给 parseInt 的字符串值的第一个字符是数字,它将解析直到第一个非数字字符的所有内容。如果第一个字符不是数字,则返回 NaN。我对 || 的使用相当懒惰,但我相信你可以想出更好的条件。

关于jquery - 使用 jquery 对选择选项进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497261/

相关文章:

javascript - 如何为 IPFS 托管的文件创建下载链接?

javascript - 首次单击后删除放置的 jquery 单击事件监听器

python - 在 Python 中按日期时间对缺少日期的用户列表进行排序

c++ - 对数组排序后,为什么我看到的是地址而不是值?

使用 vim 按行 block 对行进行排序

javascript - 配对号码,必须一次配对一个,不能与自己或小组成员配对

javascript - 如何使用jquery在高度之间执行

javascript - Jquery 同时在两个单独的 div 中移动内容

javascript - 需要在多个播放列表中单击事件

javascript - 如何对键为日期的对象数组进行排序