screenshots.gif

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        select{
            width:200px;
            height:200px;
            background-color:#33cccc;
            font-size:20px;
        }

    </style>
</head>
<body>
    <select id="all" size="5" multiple="multiple">

        <option>苹果</option>
        <option>橘子</option>
    <option>梨</option>
    <option>西瓜</option>
        <option>水蜜桃</option>
</select>

<input type="button" value=">>" id="btn1">
<input type="button" value="<<" id="btn2">
<input type="button" value=">" id="btn3">
<input type="button" value="<" id="btn4">

<select id="choose" multiple="multiple"></select>


<script>

function my$(id){return document.getElementById(id)};


//获取元素
var all = my$("all");
var choose = my$("choose");
var btn1 = my$("btn1");
var btn2 = my$("btn2");
var btn3 = my$("btn3");
var btn4 = my$("btn4");

//全选

//给第一个按钮添加点击事件,让all中的所有子元素移动到choose中
btn1.onclick = function(){
//获取all中所有的子元素
var opts = all.children;//内部的元素时动态添加的

//获取最开始的数组的个数
var n = opts.length;
console.log(n);

//将所有的opts中的元素添加给choose


for(var i = 0; i < n; i++){
choose.appendChild(opts[0]);
}
};





//单选移动

//给第一个按钮添加点击事件,让all中的所有子元素移动到choose中
btn3.onclick = function(){
//获取all中所有的子元素
var opts = all.children;//内部的元素时动态添加的
//移动的内容希望可以是固定的一个数组中的项
var arr = [];
//通过判断条件,往arr中添加需要移动的元素

//获取最开始的数组的个数
var n = opts.length;
//console.log(n);

//将所有的opts中的元素添加给choose


for(var i = 0; i < opts.length; i++){
if(opts[i].selected === true){
    arr.push(opts[i]);

}
}


//对需要移动的数组进行遍历
for(var j = 0; j < arr.length; j++){
choose.appendChild(arr[j]);
arr[j].selected = false;


}

};











//全选

//给第一个按钮添加点击事件,让all中的所有子元素移动到choose中
btn2.onclick = function(){
//获取choose中所有的子元素
var opts = choose.children;//内部的元素时动态添加的

//获取最开始的数组的个数
var n = opts.length;

//将所有的opts中的元素添加给all

for(var i = 0; i < n; i++){
all.appendChild(opts[0]);
}
};








//单选移动

//给第一个按钮添加点击事件,让all中的所有子元素移动到choose中
btn4.onclick = function(){
//获取all中所有的子元素
var opts = choose.children;//内部的元素时动态添加的
//移动的内容希望可以是固定的一个数组中的项
var arr = [];
//通过判断条件,往arr中添加需要移动的元素

//获取最开始的数组的个数
var n = opts.length;
//console.log(n);

//将所有的opts中的元素添加给choose


for(var i = 0; i < opts.length; i++){
if(opts[i].selected === true){
    arr.push(opts[i]);

}
}


//对需要移动的数组进行遍历
for(var j = 0; j < arr.length; j++){
all.appendChild(arr[j]);
arr[j].selected = false;


}

};







</script>

</body>
</html>