<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无码久久忘忧草| 成人特级毛片69免费观看| 亚洲国产精品无码久久青草 | 色欲A∨无码蜜臀AV免费播| 久久久无码精品亚洲日韩蜜桃| 永久免费AV无码网站国产 | 亚洲成A人片在线观看无码不卡| 中文字幕无线码免费人妻| 成年女人毛片免费播放视频m| 亚洲最大天堂无码精品区| 免费激情视频网站| 91大神亚洲影视在线| 精品久久久久久亚洲综合网| 深夜国产福利99亚洲视频| 人人公开免费超级碰碰碰视频| 成年18网站免费视频网站| 日韩亚洲AV无码一区二区不卡 | 午夜视频免费成人| 久久精品亚洲一区二区| 最新亚洲人成无码网站| 免费国内精品久久久久影院| a级毛片免费高清视频| 亚洲av伊人久久综合密臀性色| 亚洲视频在线观看免费视频| 亚洲另类自拍丝袜第五页| AV在线亚洲男人的天堂| 99精品视频在线视频免费观看 | 黄色免费网址大全| 亚洲国产精品不卡在线电影| 免费激情网站国产高清第一页| 男男AV纯肉无码免费播放无码 | 亚洲精品无码成人片久久不卡 | 亚洲中文字幕无码爆乳| 亚洲乳大丰满中文字幕| 免费又黄又爽又猛大片午夜| 亚洲2022国产成人精品无码区|