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 相关文章推荐
限制文本字节数js代码
Mar 06 Javascript
jquery()函数的三种语法介绍
Oct 09 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
Nov 23 Javascript
JavaScript显示表单内元素数量的方法
Apr 02 Javascript
jquery代码实现简单的随机图片瀑布流效果
Apr 20 Javascript
使用InstantClick.js让页面提前加载200ms
Sep 12 Javascript
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
ReactNative中使用Redux架构总结
Dec 15 Javascript
JS实现前端页面的搜索功能
Jun 12 Javascript
使用JavaScript破解web
Sep 28 Javascript
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
Element实现动态表格的示例代码
Aug 02 Javascript
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
用PHP动态创建Flash动画
2006/10/09 PHP
全文搜索和替换
2006/10/09 PHP
PHP+DBM的同学录程序(3)
2006/10/09 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
php实现Mysql简易操作类
2015/10/11 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
基于jquery的tab切换 js原理
2010/04/01 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
深入解析Python中的线程同步方法
2016/06/14 Python
python机器学习之神经网络(三)
2017/12/20 Python
Python中property函数用法实例分析
2018/06/04 Python
python爬虫 requests-html的使用
2020/11/30 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
Java基础知识面试题
2014/03/25 面试题
教师网络培训感言
2014/03/09 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
高中生逃课检讨书
2014/10/10 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
Python进程池与进程锁之语法学习
2022/04/11 Python