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

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

效果:

效果图.gif

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>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值