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 相关文章推荐
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
Jan 02 Javascript
node.js中的querystring.parse方法使用说明
Dec 10 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
Aug 29 Javascript
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
基于Vue渲染与插件的加载顺序的问题详解
Mar 05 Javascript
vue加载完成后的回调函数方法
Sep 07 Javascript
AngularJS实现的自定义过滤器简单示例
Feb 02 Javascript
JS回调函数 callback的理解与使用案例分析
Sep 09 Javascript
vue 解决异步数据更新问题
Oct 29 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
arguments对象
2006/11/20 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
会计专业导师推荐信
2014/03/08 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
停电调休通知
2015/04/16 职场文书
网络研修随笔感言
2015/11/18 职场文书
Go 语言中 20 个占位符的整理
2021/10/16 Golang
微信小程序实现轮播图指示器
2022/06/25 Javascript