qingfeng200468 发表于 2013-2-7 15:19:32

关于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]
查看完整版本: 关于js select 上移,下移,置顶,置底