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 相关文章推荐
一个tab标签切换效果代码
Mar 27 Javascript
用Javascript来生成ftp脚本的小例子
Jul 03 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
Apr 03 Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 Javascript
ES6 fetch函数与后台交互实现
Nov 14 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP模块化安装教程
2016/06/01 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
JSON 数据格式详解
2017/09/13 Javascript
JS判断数组那点事
2017/10/10 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
python ddt实现数据驱动
2018/03/14 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
购买一个高级域名:BuyDomains
2018/03/11 全球购物
函授毕业自我鉴定
2014/02/04 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
学校证明范文
2015/06/24 职场文书
小学语文教师研修日志
2015/11/13 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL