今天闲着没事用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下拉框选项左移右移功能,js实现下拉框元素互相移动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
利用js完成两个下拉列表中元素的移动,而且可以实现自身下拉列表元素的上下移动!
介绍了JS下拉框内容左右移动效果的具体实现方法,有需要的朋友可以参考一下
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1154530
6.2 实现两个select的同步 6.3 被选中的列表项下次不能再选 6.4 不带滚动条的select 6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE...
6.2 实现两个select的同步 6.3 被选中的列表项下次不能再选 6.4 不带滚动条的select 6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE...
推荐jQuery美化select下拉框样式漂亮效果 27.下载jQuery网页表单美化修饰插件(jQtransForm美化表单) 28.一款jquery实现表单输入提示的Autobox插件(基于jquery.ui) 29.一款美化表单下拉列表、复选框等的jquery ...
通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到...
在b/s开发中经常用到的javaScript技术整理 一、验证类 1、数字验证内 1.1 整数 1.2 大于0的整数 (用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2、时间类 ...