JavaScript操作select下拉框选项移动
运行结果:
源代码:
1 <!DOCTYPE html>
2 <html lang="zh">
3 <head>
4 <meta charset="UTF-8">
5 <title>选项移动</title>
6 </head>
7 <body>
8 <table width="285" height="169" border="0" align="left" cellpadding="0" cellspacing="0"
9 style="margin: 15px 0px 0px 15px;">
10 <tr>
11 <td width="126">
12 <!--multiple="multiple" 能同时选择多个 size="10" 确定下拉选的长度-->
13 <select name="first" multiple="multiple" size=10 class="td3" id="s">
14 <option value="选项1">选项1</option>
15 <option value="选项2">选项2</option>
16 <option value="选项3">选项3</option>
17 <option value="选项4">选项4</option>
18 <option value="选项5">选项5</option>
19 <option value="选项6">选项6</option>
20 <option value="选项7">选项7</option>
21 <option value="选项8">选项8</option>
22 </select>
23 </td>
24 <td width="69" valign="middle">
25 <input name="add" id="add" type="button" class="button" value="-->"/>
26 <input name="add_all" id="add_all" type="button" class="button" value="==>"/>
27 <input name="remove" id="remove" type="button" class="button" value="<--"/>
28 <input name="remove_all" id="remove_all" type="button" class="button" value="<=="/>
29 </td>
30 <td width="127" align="left">
31 <select name="second" size="10" multiple="multiple" class="td3" id="second">
32 <option value="选项9">选项9</option>
33 </select>
34 </td>
35 </tr>
36 </table>
37 <script type="text/javascript">
38 // 左右两边的select
39 var leftSelect = document.getElementById("s");
40 var leftItems = leftSelect.children;
41 var rightSelect = document.getElementById("second");
42 var rightItems = rightSelect.children;
43 var selectedItems = [];
44
45 // 4个 按钮
46 // 01 -> left2right selected
47 document.getElementById("add").onclick = function () {
48 // todo
49 selectedItems.splice(0, selectedItems.length); // 删除自身的全部元素
50 for (var i = 0; i < leftItems.length; i++) {
51 var item = leftItems[i];
52 if (item.selected) {
53 selectedItems.push(item);
54 }
55 }
56 for (var j = 0; j < selectedItems.length; j++) {
57 rightSelect.appendChild(selectedItems[j]);
58 // leftSelect.removeChild(selectedItems[j]); todo ->为什么左边的不需要移除呢?
59 }
60 };
61 // 02 -> left2right all
62 document.getElementById("add_all").onclick = function () {
63 // todo
64 selectedItems.splice(0, selectedItems.length); // 删除自身的全部元素
65 // alert(selectedItems.concat(selectedItems,leftItems).length); // todo ->为什么添加之后长度只是1?
66 for (var i = 0; i < leftItems.length; i++) {
67 var item = leftItems[i];
68 selectedItems.push(item);
69 }
70 for (var j = 0; j < selectedItems.length; j++) {
71 rightSelect.appendChild(selectedItems[j]);
72 }
73 };
74 // 03 -> right2left selected
75 document.getElementById("remove").onclick = function () {
76 // todo
77
78 selectedItems.splice(0, selectedItems.length); // 删除自身的全部元素
79 for (var j = 0; j < rightItems.length; j++) {
80 var item = rightItems[j];
81 if (item.selected) {
82 selectedItems.push(item);
83 }
84 }
85
86 for (var i = 0; i < selectedItems.length; i++) {
87 leftSelect.appendChild(selectedItems[i]);
88 }
89 };
90 // 04 -> right2left all
91 document.getElementById("remove_all").onclick = function () {
92 // todo
93 selectedItems.splice(0, selectedItems.length); // 删除自身的全部元素
94 for (var j = 0; j < rightItems.length; j++) {
95 var item = rightItems[j];
96 selectedItems.push(item);
97 }
98 for (var i = 0; i < selectedItems.length; i++) {
99 leftSelect.appendChild(selectedItems[i]);
100 }
101 };
102
103 // 双击事件
104 leftSelect.ondblclick = function () {
105 // 左边select控件的双击事件
106 // alert(leftSelect.selectedIndex);
107 rightSelect.appendChild(leftItems[leftSelect.selectedIndex]);
108 };
109
110 rightSelect.ondblclick = function () {
111 leftSelect.appendChild(rightItems[rightSelect.selectedIndex]);
112 };
113 </script>
114 <!--<script type="text/javascript" src="js/selectTest.js"></script>-->
115 </body>
116 </html>
JavaScript操作select下拉框选项移动的更多相关文章
- jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等
简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...
- JQuery操作select下拉框
JQuery操作select下拉框 获取Select选择的Text和Value $("#select_id").change(function(){//code...}); //为 ...
- selenium webdriver学习(八)------------如何操作select下拉框(转)
selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver 下面我们来看一下selenium webdriv ...
- JavaScript向select下拉框中加入和删除元素
JavaScript向select下拉框中加入和删除元素 1.说明 a 利用append()方法向下拉框中加入元素 b 利用remove()方法移除下拉框中最后一个元素 2.设计源代码 < ...
- JavaScript向select下拉框中添加和删除元素
JavaScript向select下拉框中添加和删除元素 1.说明 a 利用append()方法向下拉框中添加元素 b 利用remove()方法移除下拉框中最后一个元素 2.设计源码 < ...
- JavaScript解决select下拉框中的内容太长显示不全的问题
JavaScript解决select下拉框中的内容太长显示不全的问题 1.说明 有些情况下,select下拉框的内容过长,导致部分看不见: 现在通过鼠标事件,让下拉框中的内容显示完全 2.实现源码 & ...
- JavaScript获取select下拉框中的第一个值
JavaScript获取select下拉框中的第一个值 1.说明 获取select下拉框中的第一个值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- Selenium常用操作汇总二——如何操作select下拉框
下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...
- JavaScript获取Select下拉框Option的Value和Text值的方法
Js获取select下拉列表框各个Option的Value值相对比较容易,不过获取Text值却有点麻烦,对于一个初学JavaScript的 新手来说,可能一时还无从下手,那么就请看下本文的方法,以一个 ...
随机推荐
- springboot----四、yaml配置注入
四.yaml配置注入 4.1.配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :key=value applic ...
- AutoResetEvent 与 ManualResetEvent
实际上这两个东西是同一种东西,可以把他们理解为线程锁,两个不同的线程可以共享. 这两个类的构造函数参数都是传入一个 bool 值,这个 bool 值可以理解为一开始的时候,这个需要访问的资源是处于可用 ...
- JS 实现排序算法
冒泡排序 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了 ...
- 【面经】Python面试的16个高频问题
(一)Python 是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 ⒈对象的引用计数机制 Python 内部使用引用计数,来保持追踪内存中的对象,所有对 ...
- 使用socat反向Shell多台机器
原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 场景 很多时候,我们需要批量操作多台机器,业界一般使用Ansible来实现,但使用Ansible来操作多台机器的前提是需 ...
- ArcMap问题及解决方案
1.导出的矢量文件dbf格式用Excel打开后全是乱码怎么解决? 该类问题的部分解决方案是将数据用[表转Execl ] 工具转出来 能根本解决的方法是修改注册表 详细解决方案是: 乱码解决办法:①快捷 ...
- linux下oracle数据库的启动
linux下oracle数据库的启动 一.切换oracle用户 命令:su - oracle 二.运行sqlplus命令,进入sqlplus环境 命令:sqlplus /nolog (nolog参数表 ...
- redis规范(实用)
redis功能强大,数据类型丰富,再快的系统,也经不住疯狂的滥用.通过禁用部分高风险功能,并挂上开发的枷锁,业务更能够以简洁.通用的思想去考虑问题,而不是绑定在某种实现上. Redis 根据不同的用途 ...
- Twist the Permutation 数列的轮换题 Codeforces 776 div3
这是一道比较经典的将数列中的数字轮换的题目,我们先看题干: 题干分析:先浅浅地分析一下题目是要我们干什么,我们会默认有一个已经升序排序地1~n的排列,然后我们会给定一个新排列是在原有排列的基础上进行o ...
- SpringMVC解决前端传来的中文字符乱码问题
以前乱码问题通过过滤器解决,而SpringMVC给我们提供了一个过滤器,可以在web.xml中添加以下配置 修改了xml文件需要重启服务器! <!--配置解决中文乱码过滤器--> < ...