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 相关文章推荐
js DOM模型操作
Dec 28 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
javascript弹出带文字信息的提示框效果
Jul 19 Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
Oct 20 Javascript
JavaScript Canvas实现验证码
Aug 02 Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 Javascript
微信小程序实现禁止分享代码实例
Oct 19 Javascript
Vue实现点击当前行变色
Dec 14 Vue.js
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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
javascript自执行函数
2017/02/10 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
python学习之面向对象【入门初级篇】
2017/01/21 Python
Python类的动态修改的实例方法
2017/03/24 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
python实现与redis交互操作详解
2020/04/21 Python
python中元组的用法整理
2020/06/15 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
小学教师的个人自我鉴定
2013/10/24 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
工作经历证明书范文
2014/11/02 职场文书
2014年人大工作总结
2014/12/10 职场文书
警用民用对讲机找不同
2022/02/18 无线电
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript