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 相关文章推荐
会自动逐行上升的文本框
Jun 30 Javascript
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
select 控制网页内容隐藏于显示的实现代码
May 25 Javascript
JS数组合并push与concat区别分析
Dec 17 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
jquery ui sortable拖拽后保存位置
Apr 27 jQuery
React Native使用Modal自定义分享界面的示例代码
Oct 31 Javascript
详解Vue.js在页面加载时执行某个方法
Nov 20 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 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
PHP系统命令函数使用分析
2013/07/05 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
php中define用法实例
2015/07/30 PHP
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python写入文件自动换行问题的方法
2019/07/05 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
项目经理岗位职责
2013/11/11 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
志愿者活动总结
2014/04/28 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
授权收款委托书范本
2014/10/10 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技