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 相关文章推荐
学习jquery之一
Apr 27 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
Apr 12 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
May 22 Javascript
提高javascript效率 一次判断,而不要次次判断
Mar 30 Javascript
jQuery事件用法实例汇总
Aug 29 Javascript
js中this用法实例详解
May 05 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 Javascript
详解@angular/cli 改变默认启动端口两种方式
Nov 29 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
vue中的循环对象属性和属性值用法
Sep 04 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下过滤HTML代码的函数
2007/12/10 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
PHP 实现重载
2021/03/09 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Django之PopUp的具体实现方法
2019/08/31 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
python如何使用腾讯云发送短信
2020/09/17 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
制药工程专业应届生求职信
2013/09/24 职场文书
服装机修工岗位职责
2013/12/26 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
mysql left join快速转inner join的过程
2021/06/30 MySQL