夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          <2008年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          公告

          本博客中未注原創的文章均為轉載,對轉載內容可能做了些修改和增加圖片注釋,如果侵犯了您的版權,或沒有注明原作者,請諒解

          常用鏈接

          留言簿(21)

          隨筆分類(644)

          隨筆檔案(669)

          文章檔案(6)

          最新隨筆

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          /*
          *WRITE BY   :惠萬鵬
          *DATE       :2008-06-10
          *VERSION    :1.0
          *DESCRIPTION:
          */
          var SelUtil = 
          {
              
          /**
              *對二維數組進行排序
              *arr      :將要排序的數組
              *dimIndex :按第幾維排序,可選值0或1
              *ascOrDexc:按升序或降序,可先值為0或1
              *返回一個已經排好序的數組
              
          */
              __sortDyadicArray : 
          function (arr, dimIndex, ascOrDesc)
              {
                
          var tempArr = null;
                
          /** 使用選擇排序法排序*/
                
          for(var m = 0; m < arr.length-1; m++)
                {
                  
          var index = m;
                  
          for(var n = m + 1; n < arr.length; n++){
                    
          /** 按第一維升序排序 */
                    
          if(dimIndex == 0 && ascOrDesc == 0 
                      
          && arr[n][0] < arr[index][0])
                    {
                      
          index = n;
                    }
                    
          /** 按第一維降序排列 */
                    
          else if(dimIndex == 0 && ascOrDesc == 1 
                      
          && arr[n][0] > arr[index][0])
                    {
                      
          index = n;
                    }
                    
          /** 按第二維升序排序 */
                    
          else if(dimIndex == 1 && ascOrDesc == 0 
                      
          && arr[n][1] < arr[index][1])
                    {
                      
          index = n;
                    }
                    
          /** 按第二維降序排列 */
                    
          else if(dimIndex == 1 && ascOrDesc == 1 
                      
          && arr[n][1] > arr[index][1])
                    {
                      
          index = n;
                    }
                  }
                  tempArr 
          =    arr[m];
                  arr
          [m] =     arr[index];
                  arr
          [index] = tempArr;
                }
                
          return arr;
              },
              
          /**向Sel中加入一項
              *oListbox:列表對象
              *sName   :Listbox文本
              *sValue  :Listbox值
              
          */
              __
          add : function (oListbox, sValue, sName, sInitValue)
              {
                  
          var oOption = document.createElement("option");
                  oOption.appendChild(document.createTextNode(sName));
                  
          if (arguments.length == 4)
                  {
                      oOption.setAttribute("value",sValue);
                      
          if(sValue == sInitValue)
                      {
                          oOption.setAttribute("selected",true);
                      }
                      oListbox.appendChild(oOption);
                  }
              },
              
          /**
              *從二維數中加入多個option
              *oListbox   :列表對象
              *dyadicArray:二維數組
              
          */
              __addAll : 
          function (oListbox, dyadicArray, sSelected)
              {
                  
          for(var i = 0; i < dyadicArray.length; i++)
                  {
                      this.__
          add(oListbox, dyadicArray[i][0], dyadicArray[i][1], sSelected);
                  }
              },
              
          /*
              *從Sel中刪除一項
              *oListbox:列表對象
              *iIndex  :項的索引號
              
          */
              __remove : 
          function (oListbox, iIndex)
              {
                  oListbox.remove(iIndex);
              },
              
          /*
              *清空Sel的所有項
              *oListbox:列表對象
              
          */
              __clear : 
          function (oListbox)
              {
                  
          for (var i = oListbox.options.length - 1; i >= 0; i--)
                  {
                      this.__remove(oListbox, i);
                  }
              },
              
          /**
              *兩個Sel中相互移動
              *oListboxFrom:將要被移除的列表
              *oListboxTo  :將要被移到的列表
              *iIndex      :項的索引號
              
          */
              __move : 
          function (oListboxFrom, oListboxTo, iIndex)
              {
                  
          var oOption = oListboxFrom.options(iIndex);
                  
          if(oOption !== null)
                  {
                      oListboxTo.appendChild(oOption);
                  }
              },
              
          /**
              *把所有選中的項移到另一個列表
              *oListboxFrom:將要被移到的列表
              *oListboxTo  :將要被移到的列表
              
          */
              __moveAll : 
          function (oListboxFrom, oListboxTo,type)
              {
                  
          var indexes = this.__getIndexes(oListboxFrom,type);
                  
          for(var i = indexes.length - 1; i >= 0; i --)
                  {
                      this.__move(oListboxFrom, oListboxTo, indexes
          [i]);
                  }
              },
              
          /**
              *把指定索引的項上移一個位置
              *oListbox:列表對象
              *iIndex  :索引號
              
          */
              __shiftUp : 
          function (oListbox, iIndex)
              {
                  
          if(iIndex > 0)
                  {
                      
          var oOption = oListbox.options[iIndex];
                      
          var oPrevOption = oListbox.options[iIndex - 1];
                      oListbox.insertBefore(oOption, oPrevOption);
                  }
              },
              
          /**
              *把指定索引的項下移一個位置
              *oListbox:列表對象
              *iIndex  :索引號
              
          */
              __shiftDown : 
          function (oListbox, iIndex)
              {
                  
          if (iIndex < oListbox.options.length - 1)
                  {
                      
          var oOption = oListbox.options[iIndex];
                      
          var oNextOption = oListbox.options[iIndex + 1];
                      oListbox.insertBefore(oNextOption, oOption);
                  }
              },
              
          /**
              *得到選中的索引
              *oListbox:列表對像
              *type    :可選值:1選中的index,0全部index,-1沒選中的index
              
          */
              __getIndexes : 
          function (oListbox, type)
              {
                  
          var arrIndexes = new Array;
                  
          for(var i = 0; i < oListbox.options.length; i++)
                  {
                      
          if(type == 1)
                      {
                          
          if (oListbox.options[i].selected)
                          {
                              arrIndexes.push(i);
                          }
                      }
                      
          else if(type == 0)
                      {
                          arrIndexes.push(i);
                      }
                      
          else if(type == -1)
                      {
                          
          if (!oListbox.options[i].selected)
                          {
                              arrIndexes.push(i);
                          }
                      }
                  }
                  
          return arrIndexes;
              },
              
          /**
              *把一個字符串轉換成一個二維數組
              *str:帶有分隔符的字符串
              
          */
              __strToDyadicArray : 
          function (str)  
              {
                  
          var kvs = str.split('|');
                  
          var dyadicArray = new Array(kvs.length);
                  
          for(var i = 0; i < kvs.length; i++)
                  {
                      dyadicArray
          [i] = new Array(2);
                      dyadicArray
          [i][0] = kvs[i].substring(0, kvs[i].indexOf(":"));
                      dyadicArray
          [i][1] = kvs[i].substring(kvs[i].indexOf(":") + 1, kvs[i].length);
                  }
                  
          return dyadicArray;
              },
              
          /**
              *初始化一個Sel
              *SelId   :Sel的id
              *str     :初始化字符串
              *sDefault:默認值
              
          */
              initSel : 
          function(selId, str, sSelected)
              {
                  
          if(str.length > 0)
                  {
                      
          var kvs = this.__strToDyadicArray(str);
                      oSel 
          = document.getElementById(selId);
                      this.__addAll(oSel,kvs,sSelected);
                  }
              },
              
          /**
              *初始化兩個Sel
              *selLeftId :左邊Sel的id
              *selRightId:右邊Sel的id
              *strLeft   :左邊初始化字符串
              *strRight  :右邊初始化字符串
              
          */
              initDouSel : 
          function(selLeftId, selRightId, strLeft, strRight)
              {
                  this.initSel(selLeftId, strLeft, 
          'XXXX');
                  this.initSel(selRightId, strRight, 
          'XXXX');
              },
              
          /**
              *左邊全部移到右邊
              *selLeftId :左邊列表id
              *selRightId:右邊列表id
              *bla       :button left all
              *blp       :button left part
              *bra       :button right all
              *brp       :button right part
              
          */
              leftSelToRightSelAll : 
          function(selLeftId, selRightId, bla, blp, bra, brp)
              {
                  
          var oSelLeft = document.getElementById(selLeftId);
                  
          var oSelRight = document.getElementById(selRightId);
                  this.__moveAll(oSelLeft,oSelRight,
          0);
                  document.getElementById(bla).disabled 
          = true;
                  document.getElementById(blp).disabled 
          = true;
                  document.getElementById(bra).disabled 
          = false;
                  document.getElementById(brp).disabled 
          = false;
              },
              
          /**
              *左邊選中的項全部移到右邊
              *selLeftId :左邊列表id
              *selRightId:右邊列表id
              *bla       :button left all
              *blp       :button left part
              *bra       :button right all
              *brp       :button right part
              
          */
              leftSelToRightSelPart : 
          function(selLeftId, selRightId, bla, blp, bra, brp)
              {
                  
          var oSelLeft = document.getElementById(selLeftId);
                  
          var oSelRight = document.getElementById(selRightId);
                  this.__moveAll(oSelLeft,oSelRight,
          1);
                  
          if(this.__getIndexes(oSelLeft,0).length == 0)
                  {
                      document.getElementById(bla).disabled 
          = true;
                      document.getElementById(blp).disabled 
          = true;
                  }
                  
          else
                  {
                      document.getElementById(bla).disabled 
          = false;
                      document.getElementById(blp).disabled 
          = false;
                  }
                  document.getElementById(bra).disabled 
          = false;
                  document.getElementById(brp).disabled 
          = false;
              },
              
          /**
              *右邊全部移到左邊
              *selLeftId :左邊列表id
              *selRightId:右邊列表id
              *bla       :button left all
              *blp       :button left part
              *bra       :button right all
              *brp       :button right part
              
          */
              rightSelToleftSelAll : 
          function(selLeftId, selRightId, bla, blp, bra, brp)
              {
                  
          var oSelLeft = document.getElementById(selLeftId);
                  
          var oSelRight = document.getElementById(selRightId);
                  this.__moveAll(oSelRight,oSelLeft,
          0);
                  document.getElementById(bra).disabled 
          = true;
                  document.getElementById(brp).disabled 
          = true;
                  document.getElementById(bla).disabled 
          = false;
                  document.getElementById(blp).disabled 
          = false;
              },
              
          /**
              *左邊選中的項全部移到右邊
              *selLeftId :左邊列表id
              *selRightId:右邊列表id
              *bla       :button left all
              *blp       :button left part
              *bra       :button right all
              *brp       :button right part
              
          */
              rightSelToLeftSelPart : 
          function(selLeftId, selRightId, bla, blp, bra, brp)
              {
                  
          var oSelLeft = document.getElementById(selLeftId);
                  
          var oSelRight = document.getElementById(selRightId);
                  this.__moveAll(oSelRight, oSelLeft, 
          1);
                  
          if(this.__getIndexes(oSelRight,0).length == 0)
                  {
                      document.getElementById(bra).disabled 
          = true;
                      document.getElementById(brp).disabled 
          = true;
                  }
                  
          else
                  {
                      document.getElementById(bra).disabled 
          = false;
                      document.getElementById(brp).disabled 
          = false;
                  }
                  document.getElementById(bla).disabled 
          = false;
                  document.getElementById(blp).disabled 
          = false;
              }
          }
          使用方法:
          <html>
          <head>
              
          <title>Two-Select</title>
              
          <script language="javascript" src="/SelUtil.js" charset="gb2312"></script>
          </head>

          <body>
              
          <select id="s1" style="width:80;height:100;float:left" multiple></select>
              
          <div style="width:50;height:100;margin:5px;float:left;text-align:center;">
                  
          <input type="button" id="b1" class="b1" value="&gt;&gt;" 
                      onclick
          ="SelUtil.leftSelToRightSelAll('s1','s2','b1','b2','b3','b4')">
                  
          <input type="button" id="b2" class="b2" value="&gt;"
                      onclick
          ="SelUtil.leftSelToRightSelPart('s1','s2','b1','b2','b3','b4')">
                  
          <input type="button" id="b3" class="b3" value="&lt;" 
                      onclick
          ="SelUtil.rightSelToLeftSelPart('s1','s2','b1','b2','b3','b4')" > 
                  
          <input type="button" id="b4" class="b4" value="&lt;&lt;"
                      onclick
          ="SelUtil.rightSelToleftSelAll('s1','s2','b1','b2','b3','b4')" >
              
          </div>
              
          <select id="s2" style="width:80;height:100" multiple></select>
              
          <script language='javascript'>
                   
          var str1 = "1:趙云|2:張遼|3:典韋";
                  
          var str2 = "4:呂布|5:張飛|6:關羽";
                  document.body.onload 
          = function ()
                  {
                      SelUtil.initDouSel(
          "s1","s2",str1,str2);
                  }
              
          </script>
          </body>
          </html>

          posted on 2008-06-10 13:32 HUIKK 閱讀(1040) 評論(0)  編輯  收藏 所屬分類: JavaScript
          主站蜘蛛池模板: 松桃| 景洪市| 莱芜市| 化德县| 陇南市| 博罗县| 玉山县| 黔东| 济阳县| 佛坪县| 抚松县| 锡林郭勒盟| 井陉县| 白城市| 德保县| 绿春县| 台北市| 大兴区| 苍南县| 潮州市| 鲁甸县| 大方县| 乌什县| 类乌齐县| 阿勒泰市| 盐城市| 界首市| 鸡泽县| 怀安县| 兴业县| 凉山| 罗山县| 黄山市| 南木林县| 和平县| 盘山县| 孝感市| 油尖旺区| 定结县| 四子王旗| 高要市|