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 相关文章推荐
CLASS_CONFUSION JS混淆 全源码
Dec 12 Javascript
一个仿糯米弹框效果demo
Jul 22 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
Mar 04 Javascript
JavaScript检测并限制复选框选中个数的方法
Aug 12 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
Vue中添加过渡效果的方法
Mar 16 Javascript
vue 微信授权登录解决方案
Apr 10 Javascript
javascript刷新父页面方法汇总详解
Oct 10 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
解决中英文字符串长度问题函数
2007/01/16 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
解密效果
2006/06/23 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
跟老齐学Python之模块的加载
2014/10/24 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
2017/11/30 Python
python sort、sort_index方法代码实例
2019/03/28 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
python绘制高斯曲线
2021/02/19 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
医务人员医德医风心得体会
2016/01/25 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
php实现自动生成验证码的实例讲解
2021/11/17 PHP