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


Posted in Javascript onMarch 09, 2017

今天没事用js写了一个用两个select下拉框之间能互相移动元素的小程序,刚刚才开始学javascript还有很多优化的地方。

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>

上面是javascript代码,下面是html加css代码。

Html代码

<html> 
<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>

源码下载:js实现下拉框元素互相移动

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
form表单action提交的js部分与html部分
Jan 07 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
Sep 16 Javascript
深入浅析AngularJS中的module(模块)
Jan 04 Javascript
Node.js包管理器Yarn的入门介绍与安装
Oct 17 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
Vue渲染过程浅析
Mar 14 Javascript
js实现适配移动端的拖动效果
Jan 13 Javascript
vue 中的 render 函数作用详解
Feb 28 Javascript
js实现年月日表单三级联动
Apr 17 #Javascript
js实现3D图片展示效果
Mar 09 #Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 #Javascript
less简单入门(CSS 预处理语言)
Mar 08 #Javascript
完美实现js选项卡切换效果(二)
Mar 08 #Javascript
微信小程序中用WebStorm使用LESS
Mar 08 #Javascript
Vue常用指令V-model用法
Mar 08 #Javascript
You might like
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
javaScript语法总结
2016/11/25 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
详解Python中的条件判断语句
2015/05/14 Python
Python实现的归并排序算法示例
2017/11/21 Python
python操作redis方法总结
2018/06/06 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python动态视频下载器的实现方法
2019/09/16 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
优秀的计算机专业求职信范文
2013/12/27 职场文书
婚前协议书
2014/04/15 职场文书
委托协议书范本
2014/04/22 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
颐和园的导游词
2015/01/30 职场文书
明星邀请函
2015/02/02 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL