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

  • 相关阅读:
    2.2.16锁对象的改变
    2.2.15内置类与同步:测试2
    2.2.14内置类与同步:测试1
    2.2.13内置类与静态内置类
    libev客户端
    Linux下sqlite3编程
    ds18b20驱动及应用程序
    ds18b20采集温度并上报服务器
    linux下GPRS模块ppp拨号上网
    linux下GPRS模块的应用程序
  • 原文地址:https://www.cnblogs.com/interdrp/p/1434309.html
Copyright © 2020-2023  润新知