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 word表格动态添加代码
Jun 07 Javascript
js中更短的 Array 类型转换
Oct 30 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
jQuery分组选择器用法实例
Dec 23 Javascript
jQuery消息提示框插件Tipso
May 04 Javascript
JavaScript的9种继承实现方式归纳
May 18 Javascript
基于js实现投票的实例代码
Aug 04 Javascript
Ztree新增角色和编辑角色回显问题的解决
Oct 25 Javascript
详解AngularJS中的表单验证(推荐)
Nov 17 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
Dec 30 Javascript
详解小程序不同页面之间通讯的解决方案
Nov 23 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
php中文件上传的安全问题
2006/10/09 PHP
php下intval()和(int)转换使用与区别
2008/07/18 PHP
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
python读写ini文件示例(python读写文件)
2014/03/25 Python
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
python实现决策树分类(2)
2018/08/30 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
python 字符串格式化的示例
2020/09/21 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
大学生职业生涯设计书
2014/01/02 职场文书
企业安全生产标语
2014/06/06 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
介绍信格式
2015/01/30 职场文书
学校端午节活动总结
2015/02/11 职场文书
三方合作意向书范本
2015/05/09 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书