JavaScript实现左右下拉框动态增删示例


Posted in Javascript onMarch 09, 2017

选中下拉框中的选项实现左移右移

效果:

JavaScript实现左右下拉框动态增删示例

1. Html部分代码

<body>
<table align="center">
  <tr>
    <td ><select size="15" id="left" >
      <option>左1</option>
      <option>左2</option>
      <option>左3</option>
      <option>左4</option>
      <option>左5</option>
      <option>左6</option>
      <option>左7</option>
      <option>左8</option>
      <option>左9</option>
      <option>左10</option>
    </select></td>

    <td>
      <input type="button" value="MoveRight" onclick="moveRight()"><br>
      <input type="button" value="MoveAllRight" onclick="moveAllright()"/><br>
      <input type="button" value="MoveLeft" onclick="moveLeft()"><br>
      <input type="button" value="MoveAllLeft" onclick="moveAllLeft()"><br>
    </td>


    <td>
      <select size="15" id="right">
        <option>右1</option>
        <option>右2</option>
        <option>右3</option>
        <option>右4</option>
        <option>右5</option>
        <option>右6</option>
        <option>右7</option>
      </select>
    </td>

    <td></td>
  </tr>

  </table>

</body>

2. JavaScript脚本代码如下:

<script type="text/javascript">
   function moveRight()
   {
     //获取左边select元素节点
     var leftSelectNode = document.getElementById("left");
     //获取子元素节点数组
     //如果选定的索引号为-1,则提示用户
     if (leftSelectNode.selectedIndex == -1)
     {
       alert("请选定需要移动的选项");
       return;
     }
     //获取待移动的选项
     var waitSelection = leftSelectNode.options[leftSelectNode.selectedIndex];
     //获取右边的selec元素节点并加入
     var rightSelectNode = document.getElementById("right");
     //右边新增一个节点
     rightSelectNode.appendChild(waitSelection);

   }

   function moveAllright()
   {//获取select对象
     var leftSelectNode = document.getElementById("left");
     var rightSelectNode = document.getElementById("right");

     var optionsNodes = leftSelectNode.options;

     var length = optionsNodes.length;
     for (var i = 0; i < length; i++)
     {
       rightSelectNode.appendChild(optionsNodes[0]);
     }
   }

   function moveLeft()
   {
     //获取左边的select对象
    var rightSelectNode = document.getElementById("right");
    //没有选中则提示
     if (rightSelectNode.selectedIndex == -1)
     {
       alert("请选择一个选项");
       return;
     }
     //获取待移动的选项
     var waitMoveNode = rightSelectNode.options[rightSelectNode.selectedIndex];
     //获取左边的select对象
     var leftSelectNode = document.getElementById("left");

     //左边的select对象加入节点
     leftSelectNode.appendChild(waitMoveNode);

   }
   function moveAllLeft()
   {
     //获取右边的select对象
     var rightSelectNode = document.getElementById("right");
     var leftSelectNode = document.getElementById("left");

     var length = rightSelectNode.options.length;

     //遍历其option选项并加入到左边的select中
     for (var i = 0; i < length; i++)
     {
       leftSelectNode.appendChild(rightSelectNode.options[0]);
     }
   }

  </script>

3.CSS简单代码如下:

<style>
    select, td
    {
      font:20px/40px '宋体';
    }
    option {width: 100px;
      font:20px/40px '宋体';
    }
    input {
      padding: 3px;
      font:20px/40px '宋体';
      text-align: center;
      width: 130px;
      height: 40px;
      background-color: orange;
    }
  </style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript是怎么继承的介绍
Jan 05 Javascript
jQuery中多个元素的Hover事件解决方案
Jun 12 Javascript
javascript轻量级模板引擎juicer使用指南
Jun 22 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
Jul 08 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
Aug 11 Javascript
利用原生JS自动生成文章标题树的实例
Aug 22 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
Vue2.0用 watch 观察 prop 变化(不触发)
Sep 08 Javascript
详解Vue2 SSR 缓存 Api 数据
Nov 20 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
JS实现小星星特效
Dec 24 Javascript
Vue实现动态查询规则生成组件
May 27 Vue.js
less简单入门(CSS 预处理语言)
Mar 08 #Javascript
完美实现js选项卡切换效果(二)
Mar 08 #Javascript
微信小程序中用WebStorm使用LESS
Mar 08 #Javascript
Vue常用指令V-model用法
Mar 08 #Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 #Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 #Javascript
js实现倒计时效果(小于10补零)
Mar 08 #Javascript
You might like
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
vue组件中的数据传递方法
2018/05/14 Javascript
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
django最快程序开发流程详解
2019/07/19 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
python异常处理try except过程解析
2020/02/03 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
一个SQL面试题
2014/08/21 面试题
个人委托书怎么写
2014/04/04 职场文书
护理学专业求职信
2014/06/29 职场文书
2016情人节宣传语
2015/07/14 职场文书
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android