JavaScript学习记录总结(九)——移动添加效果
<!DOCTYPE html>
<html>
<head>
<title>moveOption.html</title>
<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="this is my page">
<meta name="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
//声明全局变量
var loptionDom; //左边的select对应的Dom对象
var roptionDom; //右边的select对应的DOM对象
//窗体加载完毕 获取dom对象
window.onload = function() {
//获取左边的select对应的Dom对象
loptionDom = document.getElementById("loption");
//获取右边的select对应的DOM对象
roptionDom = document.getElementById("roption");
};
//向右移动
function moveRight(value) {
//获取左边select所有的option集合对象
var options = loptionDom.options;
//判断是否是单个移动
if (value == 1) {
//记住要移动的option对象
var remberoptionDom = null;
//记住要移动的option的数量
var count = 0;
//遍历options集合对象
for (var i = 0; i < options.length; i++) {
//获取option对象
var optionDom = options[i];
//判断是否是选中的option对象selected="selected"
if (optionDom.selected) {
//赋值
remberoptionDom = optionDom;
//数量递增
count++;
}
}
//判断数量是否是1 如果是1代表移动一个
if (count == 1) {
//添加到了右边
roptionDom.appendChild(remberoptionDom);
//左边要移除
loptionDom.removeChild(remberoptionDom);
} else if (count == 0) {
alert("请选择要移动的数据");
} else {
alert("请选择==>移动");
}
} else if (value == 0) {
//遍历操作 为啥 一定要写成 i=options.length-1 ; i>=0;i--
for (var i = options.length - 1; i >= 0; i--) {
//获取option对象
var optionDom = options[i]; //options[0] //8
//判断是否被选中
if (optionDom.selected) {
//左边要移除
loptionDom.removeChild(optionDom);
//添加到了右边
roptionDom.appendChild(optionDom);
}
}
}
}
//向左移动
function moveLeft(value) {
if (value == 1) {
} else if (value == 0) {
}
}
</script>
</head>
<body>
<!-- 左右移动的整个代码 -->
<div style="width: 400px; height: 280px;margin: 0px auto;">
<!-- 左边的代码 -->
<div style="width: 100px; float:left;">
<select multiple="multiple" style="height: 200px; width: 80px;"
id="loption">
<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>
</select>
</div>
<!-- 中间代码 -->
<div style="width: 100px;float: left;margin-right: 30px;">
<ul style="list-style: none;">
<li><input type="button" value="-->"
style="width: 40px; margin-bottom: 15px;" onclick="moveRight(1)" />
<input type="button" value="==>"
style="width: 40px;margin-bottom: 15px;" onclick="moveRight(0)" />
<input type="button" value="<--"
style="width: 40px;margin-bottom: 15px;" onclick="moveLeft(1)" /> <input
type="button" value="<==" style="width: 40px;margin-bottom: 15px;"
onclick="moveLeft(0)" /></li>
</ul>
</div>
<!-- 右边代码 -->
<div style="width: 100px; float: left; ">
<select multiple="multiple" style="height: 200px; width: 80px;"
id="roption"></select>
</div>
</div>
</body>
</html>
效果:
JavaScript学习记录总结(九)——移动添加效果的更多相关文章
- JavaScript学习记录四
title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类
主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3 参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 在 ...
- JavaScript学习记录三
title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- JavaScript学习记录一
title: JavaScript学习记录一 toc: true date: 2018-09-11 18:26:52 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询
ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...
- Javascript学习记录——原生JS实现旋转木马特效
昨天学习到了JS特效部分,然后老师讲了旋转木马特效的实现,如上图.不过只是讲了通过点击箭头实现图片的切换,对于点击图片本身以及二者联动却是没有讲解. 本着一颗追求完美的心,今天花费了一个中午终于将整个 ...
- JavaScript学习记录总结(七)——dom对象应用之用户简单管理
<!DOCTYPE html><html><head><title>users.html</title> <meta name=&qu ...
- javascript 学习总结(九)面向对象编程
1.面向对象的工厂方法 function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; ...
随机推荐
- SQL Server 索引介绍
数据库索引是对数据表中一个或多个列的值进行排序的结构,就像一本书的目录一样,索引提供了在行中快速查询特定行的能力 详细出处参考:http://www.jb51.net/article/30950.ht ...
- VS2013项目配置directx11
假定你已经安装好了direct11 SDK(官方下的既是最新版本)和VS2013,并在VS2013中建立了一个新工程. 用VS2013打开工程后,点击右键属性,选择VC++目录: 其中在包含目录中添加 ...
- JAVA小记
关于重写equals()方法和重写toString()方法,一般来说,Objects的默认子类都重写了这两个方法,直接利用就行了: 对于用户自定义的类,如果要用到这两方法,就必须在程序中重写.
- WebGis应用开发框架
转自:http://www.cnblogs.com/zitsing/archive/2012/03/02/2377083.html 前言 Web Gis顾名思义就是通过浏览器方式操作的地理系统.通过浏 ...
- apache http client vs urlconnection
Google has deprecated HttpClient Choose an HTTP Client Most network-connected Android apps use HTTP ...
- UIkit框架之UIbutton的使用
1.UIbutton的继承关系:UIcontroller:UIview:UIresponder:NSObject: 2.添加按钮的步骤: (1)创建按钮的时候首先设置类型 (2)添加标题或者图片,设置 ...
- 转载:node.js socket.io
本文转自:http://www.xiaocai.name/post/cf1f9_7b6507 学习node.js socket.io 使用 用node.js(socket.io)实现数据实时推送 在 ...
- Interview---一道有趣的推理题
题目描述: 一个岛上有100个人,他们的眼睛只有两种颜色,蓝色和红色.95个人是黑色,其余5人是红色. 他们有个宗教信仰,从不照镜子,所以他们自己不知道自己的眼睛的颜色.但是能看到其他人的眼睛. 他们 ...
- flex css 布局
http://www.w3cplus.com/css3/flexbox-basics.html
- ubuntu命令chmod755
使用方式 : 在终端切换到文件目录 输入 chmod775 hello.py 这样就将hello.py变成了可执行文件 当然作为 python文件 还需要再开头加上 #!/usr/bin/env py ...