关于js select 上移,下移,置顶,置底
在网上搜索select排序功能代码, 有一大堆,可真正实现置顶功能的却很少,不是功能没有实现,就是速度奇慢无比,当然也可能是自己搜索能力没有过关,于是想到"求人不如己",自己奋笔直书,写完整的select排序功能,只对IE7.0和Firefox3.0进行测试通过!希望能给需要类似功能同仁提供一些帮助!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> Select Demo </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><style>center{font-size:12px;color:red;font-weight:bold;}select{font-size:12px;color:green;}</style><BODY><span id='feedback'></span><form method="post" name="myform"><table border="0" width="400"> <tr><td><CENTER>可选择排序方式</CENTER></td><td> </td><td><CENTER>已选择排序方式</CENTER></td> </tr> <tr> <td width="40%"><selectmultiple name="left" id="left" size="8" style='width:200;'ondblclick="moveOption(document.getElementById('left'), document.getElementById('right'))"> <option value="20">测试数据一</option> <option value="30">测试数据二</option> <option value="40">测试数据三</option> <option value="50">测试数据四</option> <option value="60">测试数据五</option> <option value="70">测试数据六</option> <option value="80">测试数据七</option> <option value="90">测试数据八</option> </select> </td> <td width="20%" align="center"><input type="button" value=" >> " ><br><br><input type="button" value=" << " > </td> <td width="40%"><selectmultiple name="right" id="right" size="8" style='width:200;'ondblclick="moveOption(document.getElementById('right'), document.getElementById('left'))"></select> </td> </tr> <tr><td colspan="3"><CENTER><INPUT TYPE="button" value="置顶" ><INPUT TYPE="button" value="上移" ><INPUT TYPE="button" value="下移" ><INPUT TYPE="button" value="置底" ></CENTER></td> </tr></table> </BODY></HTML><SCRIPT LANGUAGE="JavaScript"><!--//上移 function moveUp(obj) { for(var i=1; i < obj.length; i++) {//最上面的一个不需要移动,所以直接从i=1开始 if(obj.options.selected) { if(!obj.options.item(i-1).selected) { var selText = obj.options.text; var selValue = obj.options.value;obj.options.text = obj.options.text;obj.options.value = obj.options.value;obj.options.selected = false;obj.options.text = selText;obj.options.value = selValue;obj.options.selected=true; } } } }//下移function moveDown(obj) { for(var i = obj.length -2 ; i >= 0; i--) {//向下移动,最后一个不需要处理,所以直接从倒数第二个开始 if(obj.options.selected) { if(!obj.options.selected) { var selText = obj.options.text; var selValue = obj.options.value; obj.options.text = obj.options.text; obj.options.value = obj.options.value; obj.options.selected = false;obj.options.text = selText;obj.options.value = selValue; obj.options.selected=true; } } } }//移动function moveOption(obj1, obj2){ for(var i = obj1.options.length - 1 ; i >= 0 ; i--) { if(obj1.options.selected) {var opt = new Option(obj1.options.text,obj1.options.value);opt.selected = true;obj2.options.add(opt);obj1.remove(i);} }}//置顶functionmoveTop(obj) { varopts = []; for(var i =obj.options.length -1 ; i >= 0; i--){if(obj.options.selected){opts.push(obj.options);obj.remove(i);}}var index = 0 ;for(var t = opts.length-1 ; t>=0 ; t--){var opt = new Option(opts.text,opts.value);opt.selected = true;obj.options.add(opt, index++);}} //置底functionmoveBottom(obj) { varopts = []; for(var i =obj.options.length -1 ; i >= 0; i--){if(obj.options.selected){opts.push(obj.options);obj.remove(i);}} for(var t = opts.length-1 ; t>=0 ; t--){var opt = new Option(opts.text,opts.value);opt.selected = true;obj.options.add(opt);}} //--></SCRIPT>
页:
[1]