js Dom and jquery实现窗体内容左右移动
第一种js写法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>左右移动</title>
<script src="js/jquery-3.4.1.min.js"></script>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
body {
width: 300px;
margin:0 auto;
background-color: bisque;
}
#main {
border: solid skyblue 2px;
margin-top: 100px;
width: 300px;
height: 200px;
}
#div1 {
width: 118px;
height: 200px;
float: left;
}
#div2 {
margin-left: 2px;
width: 60px;
height: 200px;
float: left;
background: sandybrown;
}
#div3 {
margin-left: 2px;
width: 118px;
height: 200px;
float: left;
}
select {
height: 200px;
width: 118px;
}
</style>
</head>
<body>
<div id="main">
<div id="div1">
<select id="left" size="10" multiple>
<option value="a">语文</option>
<option value="b">数学</option>
<option value="c">英语</option>
<option value="d">物理</option>
<option value="e">化学</option>
<option value="f">生物</option>
</select>
</div>
<div id="div2">
<input type="button" value="右移" style="top: 20px" onclick="moveRight()"/><br>
<input type="button" value="左移" style="top: 70px" onclick="moveLeft()"/><br>
<input type="button" value="全部右移" style="top: 120px" onclick="moveRightAll()"/><br>
<input type="button" value="全部左移" style="top: 170px" onclick="moveLeftAll()"/><br>
</div>
<div id="div3">
<select id="right" size="10" multiple="multiple">
</select>
</div>
</div>
<script type="text/javascript">
var flag=new Boolean();
// 右移
function moveRight() {
moveFromTo('left','right',true)
}
// zuo移
function moveLeft() {
moveFromTo('right','left',true)
}
// 全部右移
function moveRightAll() {
moveFromTo('left','right')
}
// 全部左移
function moveLeftAll() {
moveFromTo('right','left')
}
function moveFromTo(fro,to,flag){
var left=document.getElementById(to);
var right=document.getElementById(fro);
var strs=new Array();
strs=right.getElementsByTagName('option');
var len=strs.length;
for (var i=len-1;i>=0;i--) {
if(flag){
if (strs[i].selected==true) {
left.appendChild(strs[i])
}
}else{
left.appendChild(strs[i]);
}
}
}
</script>
</body>
</html>
第二种jquery写法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>左右移动</title>
<script src="js/jquery-3.4.1.min.js"></script>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
body {
width: 300px;
margin:0 auto;
background-color: bisque;
}
#main {
border: solid skyblue 2px;
margin-top: 100px;
width: 300px;
height: 200px;
}
#div1 {
width: 118px;
height: 200px;
float: left;
}
#div2 {
margin-left: 2px;
width: 60px;
height: 200px;
float: left;
background: sandybrown;
}
#div3 {
margin-left: 2px;
width: 118px;
height: 200px;
float: left;
}
select {
height: 200px;
width: 118px;
}
</style>
</head>
<body>
<div id="main">
<div id="div1">
<select id="left" size="10" multiple>
<option value="a">语文</option>
<option value="b">数学</option>
<option value="c">英语</option>
<option value="d">物理</option>
<option value="e">化学</option>
<option value="f">生物</option>
</select>
</div>
<div id="div2">
<input type="button" value="右移" style="top: 20px" onclick="moveRight()"/><br>
<input type="button" value="左移" style="top: 70px" onclick="moveLeft()"/><br>
<input type="button" value="全部右移" style="top: 120px" onclick="moveRightAll()"/><br>
<input type="button" value="全部左移" style="top: 170px" onclick="moveLeftAll()"/><br>
</div>
<div id="div3">
<select id="right" size="10" multiple="multiple">
</select>
</div>
</div>
<script type="text/javascript">
// 右移
function moveRight() {
$('#div1 option:selected').appendTo('#right');
}
// zuo移
function moveLeft() {
$('#div3 option:selected').appendTo('#left');
}
// 全部右移
function moveRightAll() {
$('#div1 option').appendTo('#right');
}
// 全部左移
function moveLeftAll() {
$('#div3 option').appendTo('#left');
}
</script>
</body>
</html>
这里面没啥重点的东西,就是注意append方法是将元素移动
而不能用add方法
一开始我是用的add
发现移动的只能是value,移动后删除还要写一个方法
然后反过来移动就删除不了了;
没办法老师让使用两种方法,就有了上面的两种截然不同的做法