前端之下拉列表项的转移(通过一个函数传参实现)

今天带来的是js实现的下拉列表项的转移,其中有两个特别需要注意的地方,一个是在按钮中调用函数时参数的传递,一个是表单对象的name可不可以当作参数传递。

首先我把代码给出:(直接复制就可以测试效果了)

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>下拉框的文本转移</title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			
			.wide {
				width: 400px;
				margin: 0 auto;
			}
			
			.selcetwords {
				width: 100px;
			}
		</style>
		<script type="text/javascript">
			function moveWords(oldwords,newwords) {
					
				var words = new Array();//用来保存单词的数组
				//用来获得选中的单词的value
				var temp = 0;//用来保存选中的单词数
				//保存选中的单词
				
				for(var i = 0; i < document.getElementById(oldwords).options.length; i++) {
					//判断是否选中
					if (document.getElementById(oldwords).options[i].selected) {
						//将选中的单词保存
						words[temp] = document.getElementById(oldwords).options[i].value;
						//增加要保存单词的长度
						temp ++;
					}
				}
				//删除已经被选中保存的单词
				for (var i = 0;i < words.length;i++) {
					for(var j = 0; j < document.getElementById(oldwords).options.length; j++){
						if (words[i] == document.getElementById(oldwords).options[j].value) {
							document.getElementById(oldwords).options[j].remove();
						}
					}
				}
				//赋值到目的列表
				for (var i = 0;i < words.length;i++) {
					newOption = new Option(words[i],words[i]);
					//增加列表项
					document.getElementById(newwords).options.add(newOption);
				}
			}
		</script>
	</head>

	<body>
		<div class="wide">
			<form action="#" method="post" name="myform">
				<select size="10" name="leftwords" id="leftwords" class="selcetwords" multiple="multiple">
					<option value="aaa">aaa</option>
					<option value="bbb">bbb</option>
					<option value="ccc">ccc</option>
					<option value="ddd">ddd</option>
				</select>
				<input type="button" name="" id="" value="右移" onclick="moveWords('leftwords','rightwords')"/>
				<input type="button" name="" id="" value="左移" onclick="moveWords('rightwords','leftwords')"/>
				<select size="10" name="rightwords" id="rightwords" class="selcetwords" multiple="multiple">
					<option value="xxx">xxx</option>
					<option value="yyy">yyy</option>
					<option value="zzz">zzz</option>
				</select>
			</form>
		</div>
	</body>

</html>

我来回答一下要注意的两个问题:

第一个:自己命名的参数可以加单引号。要不然会被当成未被命名的变量,加上双引号也不行

第二个:在表单的按钮中调用函数所传递的参数应该是表单所具有的参数和值。当然传递name也可以,相当于传递了自定义参数,但是现在一般都是使用id.使用id的时候不加上双引号就行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值