<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    /*
    *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 閱讀(1046) 評論(0)  編輯  收藏 所屬分類: JavaScript
    主站蜘蛛池模板: 中文字幕亚洲专区| av电影在线免费看| 无遮挡国产高潮视频免费观看| 一区视频免费观看| 亚洲激情电影在线| 精品免费tv久久久久久久| 91精品全国免费观看青青| 久久大香伊焦在人线免费| 成年私人影院免费视频网站| 亚洲精品国产自在久久| 亚洲熟妇无码一区二区三区导航 | 中文有码亚洲制服av片| 久久久久久亚洲精品无码| 成人人观看的免费毛片| 亚洲国产精品无码久久| 中文字幕免费观看| 亚洲黄色网址在线观看| 中国一级特黄高清免费的大片中国一级黄色片 | 亚洲香蕉免费有线视频| 91在线老王精品免费播放| 亚洲白色白色永久观看| 一个人免费高清在线观看| 国产亚洲精品拍拍拍拍拍| 中文字幕的电影免费网站| 在线看片无码永久免费aⅴ| 久久精品国产亚洲AV高清热| 亚洲视频在线观看免费视频| 亚洲性色AV日韩在线观看| 亚洲av无码专区在线观看素人| 日本高清免费不卡在线| 亚洲经典在线中文字幕| 在线观看特色大片免费视频| 亚洲av永久无码精品网址| 91精品成人免费国产片| 亚洲中文无码永久免| 亚洲人AV永久一区二区三区久久| 亚洲啪AV永久无码精品放毛片| 婷婷亚洲综合一区二区| 最新中文字幕免费视频| 亚洲国产品综合人成综合网站| 丝袜足液精子免费视频|