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 相关文章推荐
一个javascript参数的小问题
Mar 02 Javascript
JS启动应用程序的一个简单例子
May 11 Javascript
JavaScript 克隆数组最简单的方法
Feb 12 Javascript
jqueyr判断checkbox组的选中(示例代码)
Nov 08 Javascript
jQuery和AngularJS的区别浅析
Jan 29 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
May 10 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
基于Bootstrap表单验证功能
Nov 17 Javascript
js实现复制功能(多种方法集合)
Jan 06 Javascript
微信小程序自定义弹窗实现详解(可通用)
Jul 04 Javascript
axios 实现post请求时把对象obj数据转为formdata
Oct 31 Javascript
js实现消灭星星(web简易版)
Mar 24 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
解决js数据包含加号+通过ajax传到后台时出现连接错误
2013/08/01 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
javascript闭包入门示例
2014/04/30 Javascript
浅析node.js中close事件
2014/11/26 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python部署web开发程序的几种方法
2017/05/05 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
影视动画专业个人的自我评价
2013/12/31 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
保护水资源的标语
2014/06/17 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers
欧元符号 €
2022/02/17 杂记
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers