JS控制下拉列表左右选择实例代码


Posted in Javascript onMay 08, 2020

使用JS控制下拉列表左右选择

需求分析

在我们的分类管理中,我们要能够去修改我们的分类信息,当我们一点修改的时候,跳转到一个可以编辑的页面,这里面能够修改分类的名称,分类的描述,以及分类的商品

技术分析

ondblclick="selectOne()":双击事件

select标签的属性multiple="multiple":

代码实现

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--
步骤分析
1. 确定事件: 点击事件 :onclick事件
2. 事件要触发函数 selectOne
3. selectOne要做一些操作
(将左边选中的元素移动到右边的select中)
1. 获取左边Select中被选中的元素
2. 将选中的元素添加到右边的Select中就可以
-->
<script>
function selectOne(){
//1. 获取左边Select中被选中的元素
var leftSelect = document.getElementById("leftSelect");
var options = leftSelect.options;
//找到右侧的Select
var rightSelect = document.getElementById("rightSelect");
//遍历找出被选中的option
for(var i=0; i < options.length; i++){
var option1 = options[i];
if(option1.selected){
//2. 将选中的元素添加到右边的Select中就可以
rightSelect.appendChild(option1);
}
}
}
//将左边所有的商品移动到右边
function selectAll(){
//1. 获取左边Select中被选中的元素
var leftSelect = document.getElementById("leftSelect");
var options = leftSelect.options;
//找到右侧的Select
var rightSelect = document.getElementById("rightSelect");
//遍历找出被选中的option
for(var i=options.length - 1; i >=0; i--){
var option1 = options[i];
rightSelect.appendChild(option1);
}
}
</script>
</head>
<body>
<table border="1px" width="400px">
<tr>
<td>分类名称</td>
<td><input type="text" value="手机数码"/></td>
</tr>
<tr>
<td>分类描述</td>
<td><input type="text" value="这里面都是手机数码"/></td>
</tr>
<tr>
<td>分类商品</td>
<td>
<!--左边-->
<div style="float: left;">
已有商品<br />
<select multiple="multiple" id="leftSelect" ondblclick="selectOne()">
<option>华为</option>
<option>小米</option>
<option>锤子</option>
<option>oppo</option>
</select>
<br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="selectOne()"> >> </a> <br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="selectAll()"> >>> </a>
</div>
<!--右边-->
<div style="float: right;"> 
未有商品<br />
<select multiple="multiple" id="rightSelect">
<option>苹果6</option>
<option>肾7</option>
<option>诺基亚</option>
<option>波导</option>
</select>
<br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > << </a> <br />
<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <<< </a>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交"/>
</td>
</tr>
</table>
</body>
</html>

实例补充:

<!DOCTYPE html>
<html>
 <head>
  <title>JavaScript下拉列表左右选择</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <script type="text/javascript" >
    function chooseToRight()
    {
      var op=document.getElementById("s1").getElementsByTagName("option");
      var select2=document.getElementById("s2");
      var k=op.length;
      for(var i=0;i<k;i++)
      {
        if(op[i].selected==true) 
        {
          select2.appendChild(op[i]);
          k--;i--;      //这里要特别注意!!!因为appendChild相当于剪切,所以每次循环之后要执行k--,i--
        }
      }
    }
    function chooseToLeft()
    {
      var op=document.getElementById("s2").getElementsByTagName("option");
      var select2=document.getElementById("s1");
      var k=op.length;
      for(var i=0;i<k;i++)
      {
        if(op[i].selected==true) 
        {
          select2.appendChild(op[i]);
          k--;i--;
        }
      }
    }
    function allToLeft()
    {
      var op=document.getElementById("s2").getElementsByTagName("option");
      var select2=document.getElementById("s1");
      var k=op.length;
      for(var i=0;i<k;i++)
      {
        select2.appendChild(op[i]);
        k--;i--;
      }
    }
    function allToRight()
    {
      var op=document.getElementById("s1").getElementsByTagName("option");
      var select2=document.getElementById("s2");
      var k=op.length;
      for(var i=0;i<k;i++)
      {
        select2.appendChild(op[i]);
        k--;i--;
      }
    }
  </script>
 </head>
 <body>
 <div style="float: left">
   <select id="s1" multiple="multiple" style="width: 120px;height: 150px">
     <option>AAAAAAA</option>
     <option>BBBBBBB</option>
     <option>CCCCCCC</option>
     <option>DDDDDDD</option>
     <option>EEEEEEE</option>
   </select><br><br>
   <input type="button" value="选中添加到右边" onclick="chooseToRight();"/><br><br>
   <input type="button" value="全部添加到右边" onclick="allToRight();"/><br>
 </div>
 <div style="float: left">
   <select id="s2" multiple="multiple" style="width: 120px;height: 150px">
     <option>1111111</option>
     <option>2222222</option>
     <option>3333333</option>
     <option>4444444</option>
     <option>5555555</option>
   </select><br><br>
   <input type="button" value="选中添加到左边" onclick="chooseToLeft();"/><br><br>
   <input type="button" value="全部添加到左边" onclick="allToLeft();"/><br>
 </div>
 </body>
</html>

到此这篇关于JS控制下拉列表左右选择实例代码的文章就介绍到这了,更多相关如何使用JS控制下拉列表左右选择内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Javascript 面向对象编程(coolshell)
Mar 18 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 Javascript
js indexOf()定义和用法
Oct 21 Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
Javascript图片上传前的本地预览实例
Jun 16 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
集合Bootstrap自定义confirm提示效果
Sep 19 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
JS中FormData类实现文件上传
Mar 27 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
VSCode搭建React Native环境
May 07 #Javascript
Javascript查看大图功能代码实现
May 07 #Javascript
用VsCode编辑TypeScript的实现方法
May 07 #Javascript
JavaScript交换变量的常用方法小结【4种方法】
May 07 #Javascript
原生JavaScript创建不可变对象的方法简单示例
May 07 #Javascript
Javascript幻灯片播放功能实现过程解析
May 07 #Javascript
基于javascript实现日历功能原理及代码实例
May 07 #Javascript
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
js截取小数点后几位的写法
2013/11/14 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
js简易版购物车功能
2017/06/17 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
利用Python查看目录中的文件示例详解
2017/08/28 Python
使用python实现knn算法
2017/12/20 Python
numpy中的高维数组转置实例
2018/04/17 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
pytest中文文档之编写断言
2019/09/12 Python
服装机修工岗位职责
2013/12/26 职场文书
教学实验楼管理制度
2014/02/01 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis