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 相关文章推荐
jquery+json实现的搜索加分页效果
Mar 31 Javascript
根据选择不同的下拉值出现相对应的文本输入框
Aug 01 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
Oct 26 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
Oct 10 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
js自定义QQ菜单效果
Jan 10 Javascript
详解JS中的立即执行函数
Feb 24 Javascript
JS实现多张图片预览同步上传功能
Jun 23 Javascript
富文本编辑器vue2-editor实现全屏功能
May 26 Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 Javascript
javascript函数式编程基础
Sep 15 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
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
详解angular element()方法使用
2017/04/08 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
Java servlet面试题
2012/03/04 面试题
个人思想理论学习的自我鉴定
2013/11/30 职场文书
平面设计师工作职责范文
2013/12/03 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
Go 内联优化让程序员爱不释手
2022/06/21 Golang