JS实现Select的option上下移动的方法


Posted in Javascript onMarch 01, 2016

本文实例讲述了JS实现Select的option上下移动的方法。分享给大家供大家参考,具体如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function UpOrDown(direct, selectId) {//direct : 1:Up, -1:Down
 var obj = document.getElementById(selectId);
 var len = obj.length;
 var index = obj.selectedIndex;
 //如果:1.没有选中的项; 2.向上,但已是最上; 3.向下,但是最下,不作处理
 if ( (index == -1) || (direct == -1 && index == 0) || (direct == 1 && index >= len - 1) )
  return;
 var swapIndex = index + direct;
 var tempOptions = new Array();
 for (var i = 0; i < len; i++){
  tempOptions[tempOptions.length] = obj.options[i == index?swapIndex:(i == swapIndex?index:i)];
 }
 obj.options.length = 0;
 for (var i = 0; i < len; i++)
  obj.options.add(tempOptions[i]);
}
function UpOrDown2(direct, selectId) {//direct : 1:Up, 0:Down
 var obj = document.getElementById(selectId);
 var len = obj.length;
 var index = obj.selectedIndex;
 //如果:1.没有选中的项; 2.向上,但已是最上; 3.向下,但是最下,不作处理
 if( (index == -1) || (direct == 1 && index == 0) || (direct == 0 && index >= len - 1) )
  return;
 var tempOptions = new Array();
 //如是向上,得到自己上一个到最后的option数组;如是向下,得到自己到最后一个的option数组
 for (var i = index - direct; i < len; i++)
  tempOptions[tempOptions.length] = obj.options[i];
 //去除刚才取得的部分
 obj.options.length = index - direct;
 //颠倒取两个option
 obj.options.add(tempOptions[1]);
 obj.options.add(tempOptions[0]);
 //将余下的option全部加进来
 for (var i = 2; i < tempOptions.length; i++)
  obj.options.add(tempOptions[i]);
}
</script>
</head>
<body>
 <table>
  <tr>
   <td>
    <select id="Select1" size="100" style="width:100px;height:200px;">
     <option>1</option>
     <option>2</option>
     <option>3</option>
     <option>4</option>
     <option>5</option>
    </select>
   </td>
   <td>
    <img id="imgUp" alt="Up" onclick="UpOrDown(-1,'Select1')" style="cursor:pointer;" /><br />
    <img id="imgDown" alt="Down" onclick="UpOrDown(1,'Select1')" style="cursor:pointer;" />
   </td>
   <td>
    <img id="img1" alt="Up2" onclick="UpOrDown2(1,'Select1')" style="cursor:pointer;" /><br />
    <img id="img2" alt="Down2" onclick="UpOrDown2(0,'Select1')" style="cursor:pointer;" />
   </td>
  </tr>
 </table>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
brook javascript框架介绍
Oct 10 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
Jun 24 Javascript
Jquery中给animation加更多的运作效果实例
Sep 05 Javascript
可编辑下拉框的2种实现方式
Jun 13 Javascript
node.js中的fs.chown方法使用说明
Dec 16 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
jQuery选择器总结之常用元素查找方法
Aug 04 Javascript
浅述Javascript的外部对象
Dec 07 Javascript
无法获取隐藏元素宽度和高度的解决方案
Mar 07 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
Mar 13 Javascript
angular2使用简单介绍
Mar 01 #Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 #Javascript
Bootstrap每天必学之导航条(二)
Mar 01 #Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 #Javascript
用NODE.JS中的流编写工具是要注意的事项
Mar 01 #Javascript
JS实现图片平面旋转的方法
Mar 01 #Javascript
JS显示日历和天气的方法
Mar 01 #Javascript
You might like
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
DEFER怎么用?
2006/07/01 Javascript
js获取div高度的代码
2008/08/09 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
js原生Ajax的封装和原理详解
2017/03/11 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
python的id()函数介绍
2013/02/10 Python
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python入门篇之编程习惯与特点
2014/10/17 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Python 寻找局部最高点的实现
2019/12/05 Python
python装饰器原理与用法深入详解
2019/12/19 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
2015年复活节活动总结
2015/02/27 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
活动新闻稿范文
2015/07/17 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers
Java数据结构之堆(优先队列)
2022/05/20 Java/Android
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers