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 相关文章推荐
超清晰的document对象详解
Feb 27 Javascript
Google排名中的10个最著名的 JavaScript库
Apr 27 Javascript
extjs 04_grid 单击事件新发现
Nov 27 Javascript
JavaScript实现的链表数据结构实例
Apr 02 Javascript
被遗忘的javascript的slice() 方法
Apr 20 Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
Sep 19 Javascript
js 轮播效果实例分享
Dec 28 Javascript
详解vue-cli中配置sass
Jun 21 Javascript
Bootstrap Table中的多选框删除功能
Jul 15 Javascript
Vue插件之滑动验证码用法详解
Apr 05 Javascript
如何在vue-cli中使用css-loader实现css module
Jan 07 Vue.js
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获取服务器端信息的方法
2014/11/28 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
Javascript继承机制详解
2017/05/30 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
在Django框架中设置语言偏好的教程
2015/07/27 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
对pandas处理json数据的方法详解
2019/02/08 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
如何获得EntityManager
2014/02/09 面试题
英语课前三分钟演讲稿
2014/08/19 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
标准发言稿结尾
2019/07/18 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python
Java 数组的使用
2022/05/11 Java/Android
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python