选择的选项中的字母数字文本按复杂字符串的第一部分排序

时间:2018-05-31 14:32:16

标签: javascript jquery arrays

可能我有一个愚蠢的问题,但如何在select选项中对字母数字文本进行排序? 例如:

  <select> <option>H123-128kbps</option>
           <option>H123-1024kbps</option>
           <option>H130-128kbps</option>
           <option>H123-512kbps</option>
           <option>H123-256kbps</option>
           <option>H130-256kbps</option>
  </select>

我想对它进行排序:

      <select><option>H123-128kbps</option>
              <option>H123-256kbps</option>
              <option>H123-512kbps</option>
              <option>H123-1024kbps</option>
              <option>H130-128kbps</option>                  
             <option>H130-256kbps</option>
        </select>

目前,我收到部分结果:

      <select><option>H123-128kbps</option>
              <option>H123-512kbps</option>
              <option>H123-1024kbps</option>
              <option>H123-256kbps</option>                  
              <option>H123-1024kbps</option>
              <option>H130-256kbps</option>
              <option>H130-128kbps</option>                
        </select>

这是我的代码:

            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);
            });

提前多多感谢:)

0 个答案:

没有答案