JavaScript实现两个select下拉框选项左移右移

今天没事用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实现下拉框元素互相移动

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

(0)

相关推荐

  • AngularJS service之select下拉菜单效果

    本文实例为大家分享了service之select下拉菜单效果的具体代码,供大家参考,具体内容如下 <!-- $watch:持续监听数据上的变化,更新界面 --> <!DOCTYPE html> <html lang="en" ng-app="myApp" ng-controller="myCtrl"> <head> <meta charset="utf-8"> <

  • javascript 中select框触发事件过程的分析

    javascript 中select框触发事件过程的分析 我们书写了mousedown,mouseup,click,input,change,focus,blur,keydowm,keydown事件绑定到了select上面,模拟客户选择相关事件的触发流程: 最后发现,触发的过程基本上一样,如果没有选择或者选择的是当前显示的option的话,不会触发change事件,只有在选择不同的option时候才会触发change事件.下面是选择了不同的option后触发事件的截图: 我们可以发现,做出改变了

  • JavaScript获取select中text值的方法

    本文实例讲述了JavaScript获取select中text值的方法.分享给大家供大家参考,具体如下: 别的不说,先看代码: 方法一: <select name="parent_id" onchange="setTitleAndLinkByGoodsCategory(this.value,this.options[this.selectedIndex].text);" > <option value="0">请选择商品分类

  • JavaScript实现向select下拉框中添加和删除元素的方法

    本文实例讲述了JavaScript实现向select下拉框中添加和删除元素的方法.分享给大家供大家参考,具体如下: 1.说明 a. 利用append()方法向下拉框中添加元素 b. 利用remove()方法移除下拉框中最后一个元素 2.实例源码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition

  • JavaScript实现的select点菜功能示例

    本文实例讲述了JavaScript实现的select点菜功能.分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <title>点菜</title> <style type="text/css"> select{ width:120px; } &l

  • Javascript操作dom对象之select全面解析

    html代码: <select id="university"> <option value="北京大学">北京大学</option> <option value="清华大学">清华大学</option> <option value="北京电影学院">北京电影学院</option> </select> js原生操作 1.获取sele

  • JavaScript实现两个select下拉框选项左移右移

    今天没事用js写了一个用两个select下拉框之间能互相移动元素的小程序,刚刚才开始学javascript还有很多优化的地方. Javascript代码 <script type="text/javascript"> /**选中的元素向右移动**/ function moveRight() { //得到第一个select对象 var selectElement = document.getElementById("first"); var optionE

  • 完美解决iview 的select下拉框选项错位的问题

    在使用iview的过程中,我遇到这样一个问题,在Model中使用select下拉框组件.但是当弹出框超过一屏需要滚动时,select的下拉选项会出现错位(下图1为正常,图2为滚动后,下拉选项错位.) 图1: 图2: 在分析组件代码后,发现以下一个样式: .ivu-modal .ivu-select-dropdown { position: absolute !important; } 解决方案 正是这个样式影响了下拉框的定位,解决的方式是覆盖作者的原来样式. 但是,很不巧的是,作者加了一个 !i

  • JavaScript实现获取select下拉框中第一个值的方法

    本文实例讲述了JavaScript实现获取select下拉框中第一个值的方法.分享给大家供大家参考,具体如下: 1.说明 获取select下拉框中的第一个值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="

  • JavaScript动态操作select下拉框

    相信在前端设计中必然不会少的了表单,因为经常会使用到下拉框选项,又或是把数据动态回显到下拉框中.因为之前牵扯到optgroup标签时遇到了问题,没查到太过详细的解决方案,自己动手操作记录一下. 首先就是咱们的老朋友"select"标签,因为需要js.jq两种操作,所以就定义两个select标签. HTML代码: <div style="width: 200px;height: 100px;margin: auto;margin-top: 100px;padding: 2

  • JavaScript实现将数组数据添加到Select下拉框的方法

    本文实例讲述了JavaScript实现将数组数据添加到Select下拉框的方法.分享给大家供大家参考.具体如下: 这里演示将数组中的数据添加到Select下拉菜单中的效果,当你点击下拉框的时候,就动态加载了数据,更换Select内容的时候,直接替换数组中的内容就可以了.适合前端设计者实现前台的部分本地化脚本操作. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-array-add-select-data-codes/ 具体代码如下: <!D

  • javascript实现省市区三级联动下拉框菜单

    本文实例讲述了javascript实现省市区三级联动下拉框菜单代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 首先写一个静态的页面: <!DOCTYPE html> <html> <head> <title>QQ JS省市区三级联动</title> <!-- 使用QQ的省市区数据 --> <!-- <script type="text/javascript" src="http:/

  • jquery动态加载select下拉框示例代码

    如题,直接上代码,实战学习. 复制代码 代码如下: <head><title>jquery实现动态加载select下拉选项</title> <script type="text/javascript"> function init(){ makemoduleSelect(); } //加载模板下拉框选项 function makemoduleSelect(){ $.ajax({ url : 'indexStatisticsAction_g

  • js实现select下拉框菜单

    本文实例讲述了js实现select下拉框菜单的详细代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> #gridComboBox { background: #fff; border: 1px solid #2d78f4; border-radius:

  • js实现可输入可选择的select下拉框

    本文实例为大家分享了可输入可选择的select下拉框,供大家参考,具体内容如下 1.原理: 1.1将input输入框和select框合并在一起,但是显示出向下点击的按钮: 这种比较容易做到 1.2出现输入值能够自动匹配的功能 动态的加载一个临时的div出现在该input下方,当点击页面中的空白地方,div隐藏. 1.3代码: <!doctype html> <html lang="en"> <head> <meta charset="

随机推荐