您现在的位置:首页 >> 前端 >> 内容

两个选择框中国家的互换

时间:2017/7/1 9:27:00 点击:

  核心提示:两个选择框中国家的互换!DOCTYPE htmlhtml lang=enheadmeta charset=UTF-8titleTitle/titlestyleselect{width:100px;he...

两个选择框中国家的互换

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>Title</title>  
    <style>  
        select{width:100px;heigth:85px;}  
        p{display:inline-block;width:50px}  
    </style>  
</head>  
<body>  
<select id="unsel" size="5" multiple>  
    <option>Argentina</option>  
    <option>Brazil</option>  
    <option>Canada</option>  
    <option>Chile</option>  
    <option>China</option>  
    <option>Cuba</option>  
    <option>Denmark</option>  
    <option>Egypt</option>  
    <option>France</option>  
    <option>Greece</option>  
    <option>Spain</option>  
</select>  
<p>  
    <button onclick="move(this)">>></button>  
    <button onclick="move(this)">></button>  
    <button onclick="move(this)"><</button>  
    <button onclick="move(this)"><<</button>  
</p>  
<select id="sel" size="5" multiple></select>  
  
  
<script>  
    var unselArr=[],selArr=[];  
  
    (function(){  
          
        /*****************方法一*******************************/  
        /* //找到id为unsel的select元素,保存在unsel中  
        var unsel=document.getElementById("unsel");  
        unselArr=  
        //将unsel的innerHTML替换开始位置的\s*<option>为“”  
        unsel.innerHTML.replace(/^\s*<option>/,"")  
        //替换结束位置的<\/option>\s*为“”  
            .replace(/<\/option>\s*$/,"")  
        //按</option>\s*<option>切割  
            .split(/<\/option>\s*<option>/)*/  
  
/*****方法二*****************************/  
        var unsel=document.getElementById("unsel");  
        var opts=unsel.getElementsByTagName("option");  
        for(var i=0;i<opts.length-1;i++){  
          unselArr.push(opts[i].innerHTML);  
        }  
  
  
  
  
    })();  
function move(btn) {  
    switch (btn.innerHTML){  
        case">>":  
            //将unselArr拼接到selArr结尾  
            selArr=selArr.concat(unselArr);  
            unselArr=[];  
            break;  
        case"<<":  
            unselArr=unselArr.concat(selArr);  
            selArr=[];  
            break;  
        case">":  
            //找到unsel中所有option,保存到opts中  
            var opts=document.querySelectorAll("#unsel>option");  
            //i从opts.length-1开始,遍历opts中每个option  
  
            //  到0结束,每次递减一  
            for(var i=opts.length-1;i>=0;i--){  
            //如果当前opt的seleced属性有效  
                if(opts[i].selected){  
            //      将unselArr中i位置的元素删除,追加到selArr中  
                    selArr.push(unselArr.splice(i,1)[0]);  
                }  
            }  
            break;  
        case"<":  
            //找到sel中所有option,保存到opts1中  
            var opts1=document.querySelectorAll("#sel>option");  
            //i从opts1.length-1开始,遍历opts1中每个option  
  
            //  到0结束,每次递减一  
            for(var i=opts1.length-1;i>=0;i--){  
                //如果当前opt的seleced属性有效  
                if(opts1[i].selected){  
                    //      将unselArr中i位置的元素删除,追加到selArr中  
                    unselArr.push(selArr.splice(i,1)[0]);  
                }  
            }  
            break;  
    }  
    selArr.sort();  
    unselArr.sort();  
    show();  
}  
  
function show(){//将每次移动后的两个数组join成HTML字符串,放到对应sel元素的内容中  
    //找到id为unsel的元素,保存到unsel中  
    var unsel=document.getElementById("unsel");  
    //如果unselArr的长度为0  
    if(unselArr.length==0){  
    //  就将unsel的内容设置为“”  
        unsel.innerHTML="";  
    }else{//否则,先拼unsel中的内容  
    unsel.innerHTML="<option>"+unselArr.join("</option><option>")+"</option>";  
    }  
  
    //找到id为sel的元素,保存到sel中  
    var sel=document.getElementById("sel");  
    //如果selArr的长度为0  
    if(selArr.length==0){  
        //  就将sel的内容设置为“”  
        sel.innerHTML="";  
    }else{//否则,先拼sel中的内容  
        sel.innerHTML="<option>"+selArr.join("</option><option>")+"</option>";  
    }  
}  
  
  
</script>  
  
  
</body>  
</html>  

 

作者:网络 来源:xingkong_3