`

用js实现两个select下拉框之间的元素互相移动

阅读更多
今天闲着没事用js写了一个用两个select下拉框之间能互相移动元素的小程序,刚刚才开始学javascript还有很多优化的地方。
<script type="text/javascript">

	
	/**选中的元素向右移动**/
 	function moveRight()
	{
		
			//得到第一个select对象
		var selectElement = document.getElementById("first");
		var optionElements = selectElement.getElementsByTagName("option");
		var len = optionElements.length;
	

		if(!(selectElement.selectedIndex==-1))   //如果没有选择元素,那么selectedIndex就为-1
		{
			
			//得到第二个select对象
			var selectElement2 = document.getElementById("secend");
	
				// 向右移动
				for(var i=0;i<len ;i++)
				{
					selectElement2.appendChild(optionElements[selectElement.selectedIndex]);
				}
		} else
		{
			alert("您还没有选择需要移动的元素!");
		}
	}
	
	//移动所有的到右边
	function moveAll()
	{
		//得到第一个select对象
		var selectElement = document.getElementById("first");
		var optionElements = selectElement.getElementsByTagName("option");
		var len = optionElements.length;
		//alert(len);
	
		//将第一个selected中的数组翻转
		var firstOption = new Array();
		for(var k=len-1;k>=0;k--)
		{
			firstOption.push(optionElements[k]);
	
		}
		var lens = firstOption.length;
			//得到第二个select对象
		var selectElement2 = document.getElementById("secend");
		for(var j=lens-1;j>=0;j--)
		{
			selectElement2.appendChild(firstOption[j]);
		}
	}
	
	//移动选中的元素到左边
	function moveLeft()
	{
		//首先得到第二个select对象
		var selectElement = document.getElementById("secend");
		var optionElement = selectElement.getElementsByTagName("option");
		var len = optionElement.length;
		
		//再次得到第一个元素
		if(!(selectElement.selectedIndex==-1))
		{
			var firstSelectElement = document.getElementById("first");
			for(i=0;i<len;i++)
			{
				firstSelectElement.appendChild(optionElement[selectElement.selectedIndex]);//被选中的那个元素的索引
			}
		}else
		{
			alert("您还没有选中要移动的项目!");
		}
	}
	
	//全部向左移
	function moveAllLeft()
	{
		var selectElement = document.getElementById("secend");
		var optionElements = document.getElementsByTagName("option");
		var len = optionElements.length;
		var optionEls = new Array();
		for(var i=len-1;i>=0;i--)
		{
			optionEls.push(optionElements[i]);
		}
		var lens = optionEls.length;
		
		var firstSelectElement = document.getElementById("first");
		for(var j=lens-1;j>=0;j--)
		{
			firstSelectElement.appendChild(optionEls[j]);
		}
	}
</script>


<hr/>
上面是javascript代码,下面是html加css代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
	.select_move { margin:0px auto; width:206px; height:140px; margin-top:300px;}
	.select_move_1 { float:left;}
	.select_move_2 { float:left;}
	.select_move_3 { float:left;}
</style>
</head>

<body>
	<div class="select_move">
    
        <div class="select_move_1">
          <select name="first" size="10" id="first" multiple="multiple">
            <option value="宝马">宝马</option>
            <option value="丰田">丰田</option>
            <option value="奥迪">奥迪</option>
            <option value="凯迪拉克">凯迪拉克</option>
            <option value="现代">现代</option>
            <option value="奔驰">奔驰</option>
            <option value="法拉利">法拉利</option>
            
          </select>
        </div>
          <div class="select_move_2">
                <input type="button" value="------>" onclick="moveRight()"/><br />
                <input type="button" value="===>" onclick="moveAll()" /><br />
                <input type="button" value="<------"  onclick="moveLeft()"/><br />
                <input type="button" value="<===" onclick="moveAllLeft()"/>
          </div>
        <div class="select_move_3">
        	 <select size="10" id="secend" multiple="multiple">
   		     </select>
        </div>
    </div>
   
</body>
</html>

分享到:
评论

相关推荐

    JavaScript实现两个select下拉框选项左移右移

    主要介绍了JavaScript实现两个select下拉框选项左移右移功能,js实现下拉框元素互相移动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    利用js完成两个下拉列表中元素的移动

    利用js完成两个下拉列表中元素的移动,而且可以实现自身下拉列表元素的上下移动!

    JS下拉框内容左右移动效果的具体实现

    介绍了JS下拉框内容左右移动效果的具体实现方法,有需要的朋友可以参考一下

    javascript 操作两个select,左右选择值。

    NULL 博文链接:https://zhouhaitao.iteye.com/blog/1154530

    程序天下:JavaScript实例自学手册

    6.2 实现两个select的同步 6.3 被选中的列表项下次不能再选 6.4 不带滚动条的select 6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE...

    《程序天下:JavaScript实例自学手册》光盘源码

    6.2 实现两个select的同步 6.3 被选中的列表项下次不能再选 6.4 不带滚动条的select 6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    推荐jQuery美化select下拉框样式漂亮效果 27.下载jQuery网页表单美化修饰插件(jQtransForm美化表单) 28.一款jquery实现表单输入提示的Autobox插件(基于jquery.ui) 29.一款美化表单下拉列表、复选框等的jquery ...

    asp.net知识库

    通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到...

    在b/s开发中经常用到的javaScript技术整理

    在b/s开发中经常用到的javaScript技术整理 一、验证类 1、数字验证内 1.1 整数 1.2 大于0的整数 (用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2、时间类 ...

Global site tag (gtag.js) - Google Analytics