javascript之选项左右移动
2013-12-10 13:23
302 查看
效果:
![](http://img.blog.csdn.net/20131210132246875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhpeGluaHVhY29t/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <div style="background-color:#CCC; width:450px; height:300px; margin:150px,0,0,450px; border:1px solid"> <table align="center" width="285" height="169" bgcolor="#99CCFF"> <tr> <td width="100"> <select name="first" id="first" size="10" multiple="multiple" style="background-color:#3FC;"> <option value="选项1">选项1</option> <option value="选项2">选项2</option> <option value="选项3">选项3</option> <option value="选项4">选项4</option> <option value="选项5">选项5</option> <option value="选项6">选项6</option> <option value="选项7">选项7</option> <option value="选项8">选项8</option> </select> </td> <td width="85" valign="middle"> <input name="add" id="add" type="button" value="--->"/> <input name="add_all" id="add_all" type="button" value="===>"/> <input name="remove" id="remove" type="button" value="<---"/> <input name="remove_all" id="remove_all" type="button" value="<==="/> </td> <td width="100" align="left"> <select name="second" id="second" size="10" multiple="multiple" style="background-color:#3FC;"> <option value="选项9">选项9</option> </select> </td> </tr> </table> </div> </body> <script type="text/javascript"> //左移右 /*<input name="add" id="add" type="button" value="--->"/>*/ document.getElementById("add").onclick = function add() { var firstSel = document.getElementById("first"); var option = firstSel.getElementsByTagName("option"); //javascript的数组是动态数组,长度是可以变的。 //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg var oplength=option.length; var secondSel = document.getElementById("second"); for(i=0;i<oplength;i++) { /* selectedIndex: 该下标返回下拉列表的索引值 注: 如果有多个被选中的情况下,永远返回第一个选中的索引值,索引最小的那个 如果没有被选中的情况下,返回-1 selectedIndex是<select>的属性 */ if(firstSel.selectedIndex!=-1) { secondSel.appendChild(option[firstSel.selectedIndex]); } } } /*<input name="add_all" id="add_all" type="button" value="===>"/>*/ document.getElementById("add_all").onclick = function addAll() { var firstSel = document.getElementById("first"); var option = firstSel.getElementsByTagName("option"); //javascript的数组是动态数组,长度是可以变的。 //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg var oplength=option.length; var secondSel = document.getElementById("second"); for(i=0;i<oplength;i++) { /*因为javascript的数组是动态数组,长度是可以变的。所以当移走全部把数 组的值移走(一个一个的移走,数组长度马上-1,所以数组下标也是-1.因次我们要把每次移的是走下标为0的那个 数,这样才保证可以全部移走)*/ secondSel.appendChild(option[0]); } } /*双击后把option移到右边*/ document.getElementById("first").ondblclick = function dblclick() { /*方法一*/ /* var firstSel = document.getElementById("first"); var option = firstSel.getElementsByTagName("option"); //javascript的数组是动态数组,长度是可以变的。 //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg var oplength=option.length; var secondSel = document.getElementById("second"); for(i=0;i<oplength;i++) { //双击可以看成:第一次点击选中,第二次点击移动 secondSel.appendChild(option[firstSel.selectedIndex]); } */ /*方法二*/ /* this: this表示document.getElementById("first") 下拉列表 this.selectedIndex表示下拉列表选中的项 */ var secondSel = document.getElementById("second"); secondSel.appendChild(this[this.selectedIndex]); } //右移左 /*<input name="remove" id="remove" type="button" value="<---"/>*/ document.getElementById("remove").onclick = function remove() { var secondSel = document.getElementById("second"); var firstSel = document.getElementById("first"); var option = secondSel.getElementsByTagName("option"); //javascript的数组是动态数组,长度是可以变的。 //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg var oplength=option.length; for(i=0;i<oplength;i++) { /* selectedIndex: 该下标返回下拉列表的索引值 注: 如果有多个被选中的情况下,永远返回第一个选中的索引值,索引最小的那个 如果没有被选中的情况下,返回-1 selectedIndex是<select>的属性 */ if(secondSel.selectedIndex!=-1) { firstSel.appendChild(option[secondSel.selectedIndex]); } } } /*<input name="remove_all" id="remove_all" type="button" value="<==="/>*/ document.getElementById("remove_all").onclick = function remove_all() { var secondSel = document.getElementById("second"); var firstSel = document.getElementById("first"); var option = secondSel.getElementsByTagName("option"); //javascript的数组是动态数组,长度是可以变的。 //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg var oplength=option.length; for(i=0;i<oplength;i++) { /*因为javascript的数组是动态数组,长度是可以变的。所以当移走全部把数 组的值移走(一个一个的移走,数组长度马上-1,所以数组下标也是-1.因次我们要把每次移的是走下标为0的那个 数,这样才保证可以全部移走)*/ firstSel.appendChild(option[0]); } } /*双击后把option移到右边*/ document.getElementById("second").ondblclick = function dblclick() { /*方法一*/ /* var secondSel = document.getElementById("second"); var firstSel = document.getElementById("first"); var option = secondSel.getElementsByTagName("option"); //javascript的数组是动态数组,长度是可以变的。 //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg var oplength=option.length; for(i=0;i<oplength;i++) { //双击可以看成:第一次点击选中,第二次点击移动 firstSel.appendChild(option[secondSel.selectedIndex]); } */ /*方法二*/ /* this: this表示document.getElementById("second") 下拉列表 this.selectedIndex表示下拉列表选中的项 */ var firstSel = document.getElementById("first"); firstSel.appendChild(this[this.selectedIndex]); } </script> </html>
相关文章推荐
- JavaScript js 左右移动下拉列表选项
- 【JavaScript】列表(Select)选项(Option)的移动(上下左右)
- 【JavaScript】列表(Select)选项(Option)的移动(上下左右)
- JavaScript js 左右移动下拉列表选项
- JavaScript js 左右移动下拉列表选项
- 【JavaScript】列表(Select)选项(Option)的移动(上下左右)
- 【JavaScript】运用jQuery实现控件左右移动的三种方法
- 用jquery实现选项内容的左右移动
- JavaScript控制滚动条左右移动
- JavaScript Select和Option列表元素上下左右移动
- JavaScript代码实现左右上下自动晃动自动移动
- javascript tab 左右移动
- 基于JavaScript实现下拉列表左右移动代码
- jquery学习之1.17-小练习2-左右选项框内容移动
- jquery 实现左右下拉列表 选项 移动
- javascript实现listbox左右移动实现代码
- 用javascript实现以个动画效果(可以上下左右的移动)
- javascript实现listbox左右移动;
- JavaScript 对两个select 元素进行操作,移动其中的选项