JavaScript实现下拉框排序

方式一

function sortMe(oSel){
if (oSel==null) return;
var ln = oSel.options.length;
var arr = new Array(); // 这是关键部分
var tempvalue=oSel.options[oSel.selectedIndex].value;

// 将select中的所有option的value值将保存在Array中
for (var i = 0; i < ln; i++)
{

  // 如果需要对option中的文本排序,可以改为arr[i] = oSel.options[i].text;
  arr[i] =Number(oSel.options[i].value);

}

arr.sort(function(a,b){return a-b;}); // 开始排序

// 清空Select中全部Option

while (ln--)
{
 
     oSel.options[ln] = null;
 
}

// 将排序后的数组重新添加到Select中

if(tempvalue!="")
oSel.add(new Option(tempvalue,tempvalue));
for (i = 0; i < arr.length; i++)
{
 
   oSel.add (new Option(arr[i], arr[i]));

}

}

方式二

     function selectBySortLetter(Obj)
     {
     var nav = navigator.appVersion;
            if (nav.indexOf('MSIE')!=-1)
     {
  var keyCode = event.keyCode;
             var realKey = String.fromCharCode(keyCode);
             var ObjOptionLen = Obj.options.length;
             var MatchTimes = 0;
             var MatchOptionIndexs = "";
             for (var i=0;i<ObjOptionLen;i++)
  {
                 if (Obj.options[i].SortLetter == realKey)
                 {
                      MatchTimes = MatchTimes + 1;
                      MatchOptionIndexs = MatchOptionIndexs + i +",";
                 }
             }
             if (MatchTimes>0)
             {
                 if (MatchTimes>keyDownTimes)
                 {
                      var MatchOptionArray = new Array (MatchTimes);
                      MatchOptionArray = MatchOptionIndexs.substr(0,MatchOptionIndexs.lastIndexOf(',')).split(',');
                      Obj.options[MatchOptionArray[keyDownTimes]].selected = true;
                      keyDownTimes = keyDownTimes + 1;
                 }
                 else
                 {
                      keyDownTimes = 0;
                 }
             }   
            }
     }

原文地址:https://www.cnblogs.com/interdrp/p/1434309.html