前端简单入门第十五讲 使用JavaScript控制下拉列表的左右选择

在我们的分类管理页面中,我们要能够去修改我们的分类信息。当我们一点修改的时候,跳转到一个可以编辑的页面,这里面能够修改分类的名称、分类的描述、以及分类的商品。在修改分类商品时,可以使用JavaScript来控制下拉列表的左右选择,效果类似如下:
前端简单入门第十五讲 使用JavaScript控制下拉列表的左右选择

案例代码实现

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--
			步骤分析:
				1.确定事件(onclick点击事件)
				2.事件要触发函数(selectOne)
				3.selectOne函数要做一些操作:将左边选中的元素移动到右边的select中
					3.1 获取左边select中被选中的元素
					3.2 将选中的元素添加到右边的select中
		-->
		<script>
			function selectOne() {
				//获取左边select中被选中的元素
				var leftSelect = document.getElementById("leftSelect");
				var options = leftSelect.options;
				
				//找到右侧的select
				var rightSelect = document.getElementById("rightSelect");
				
				//遍历找出被选中的option
				for (var i = 0; i < options.length; i++) {
					var option1 = options[i];
					if (option1.selected) {
						//将选中的元素添加到右边的select中
						rightSelect.appendChild(option1);
					}
				}
				
			}
			//将左边所有的商品移动到右边
			function selectAll() {
				//获取左边select中被选中的元素
				var leftSelect = document.getElementById("leftSelect");
				var options = leftSelect.options;
				
				//找到右侧的select
				var rightSelect = document.getElementById("rightSelect");
				
				//遍历找出被选中的option
				for (var i = options.length - 1; i >= 0; i--) {
					var option1 = options[i];
					rightSelect.appendChild(option1);
				}
			}
		</script>
	</head>
	<body>
		<table border="1px" width="400px">
			<tr>
				<td>分类名称</td>
				<td><input type="text" value="手机数码" /></td>
			</tr>
			<tr>
				<td>分类描述</td>
				<td><input type="text" value="这里面都是手机数码" /></td>
			</tr>
			<tr>
				<td>分类商品</td>
				<td>
					<!--左边商品-->
					<div style="float: left;">
						已有商品<br />
						<select multiple="multiple" id="leftSelect" ondblclick="selectOne()">
							<option>华为</option>
							<option>小米</option>
							<option>锤子</option>
							<option>oppo</option>
						</select>
						<br />
						<a href="#" onclick="selectOne()"> &gt;&gt; </a><br />
						<a href="#" onclick="selectAll()"> &gt;&gt;&gt; </a>
					</div>
					
					<!--右边商品-->
					<div style="float: right;">
						未有商品<br />
						<select multiple="multiple" id="rightSelect">
							<option>苹果8</option>
							<option>肾7</option>
							<option>诺基亚</option>
							<option>波导</option>
						</select>
						<br />
						<a href="#"> &lt;&lt; </a><br />
						<a href="#"> &lt;&lt;&lt; </a>
					</div>
				</td>
			</tr>
			<tr>
				<td colspan="2"><input type="submit" value="提交" /></td>
			</tr>
		</table>
	</body>
</html>