JS实现Select的option上下移动的方法

 更新时间:2016年03月01日 11:49:22   作者:yenange  
这篇文章主要介绍了JS实现Select的option上下移动的方法,涉及JavaScript动态操作页面元素的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • JavaScript事件对象深入详解

    JavaScript事件对象深入详解

    这篇文章主要介绍了JavaScript事件对象,结合实例形式深入分析了javascript DOM、IE及其他浏览器相关事件对象操作技巧与注意事项,需要的朋友可以参考下
    2018-12-12
  • 如何在TypeScript中处理日期字符串

    如何在TypeScript中处理日期字符串

    这篇文章主要介绍了如何在TypeScript中处理日期字符串,主要通过输入日期字符串来改善开发者的体验并减少潜在的错误,下文实现操作的分享需要的小伙伴可以参考一下
    2022-04-04
  • JS随拖拽速度设置倾斜角度的实现代码

    JS随拖拽速度设置倾斜角度的实现代码

    这篇文章主要给大家介绍了JS如何随拖拽速度设置倾斜角度,文中有详细的代码讲解,对大家的学习或工作有一定的帮助,感兴趣的小伙伴可以自己动手尝试一下
    2023-09-09
  • JavaScript适配器模式的应用详解

    JavaScript适配器模式的应用详解

    这篇文章主要介绍了理解JavaScript中的适配器模式,适配器模式即Adapter Pattern,是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,下文更多相关介绍需要的小伙伴可以参考一下
    2022-08-08
  • JS库之ParticlesJS使用简介

    JS库之ParticlesJS使用简介

    ParticlesJS是一个轻量级的创建粒子背景的 JavaScript 库,接下来通过本文给大家分享JS库之ParticlesJS使用简介,感兴趣的朋友一起看看吧
    2017-09-09
  • js数组与字符串的相互转换方法

    js数组与字符串的相互转换方法

    这篇文章主要介绍了js数组与字符串的相互转换方法,是js中常用的技巧,需要的朋友可以参考下
    2014-07-07
  • Egg.js构建一个stream流式接口服务实现详解

    Egg.js构建一个stream流式接口服务实现详解

    这篇文章主要为大家介绍了Egg.js构建一个stream流式接口服务实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 微信小程序实现可拖动悬浮图标的示例代码

    微信小程序实现可拖动悬浮图标的示例代码

    这篇文章主要介绍了微信小程序实现可拖动悬浮图标的示例代码,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • javascript模仿msgbox提示效果代码

    javascript模仿msgbox提示效果代码

    js对话框的模拟演示代码
    2008-06-06
  • 理解 JavaScript EventEmitter

    理解 JavaScript EventEmitter

    本文是笔者看了eventemitter3 和 Node.js 事件模块源码后实现的 EventEmitter 。JavaScript 事件很重要,希望看了这篇文章的你们能有所收获
    2018-03-03

最新评论