« CREATE TABLE、ALTER TABLE、DROP TABLE等,及表内列的添加、删除以及列的修改« »不用float实现模块居中布局 »
HTML中select控件操作之--移动选项-上移-下移-添加-删除

由于工作中突然用到HTML中select控件这些东西,所以整理了一下:

简单的使用可以这样:(上移,下移,)

<script   language="javascript">  
  <!--  
  function   move(t)  
  {  
  var   sel   =   document.getElementById("sel");  
  node     =   sel.options[sel.selectedIndex];  
  if(   t   ==   1   )   //下移
  {  
  if(   sel.selectedIndex   ==   sel.length-1   )  
  nextNode   =   null;  
  else  
  nextNode   =   sel.options[sel.selectedIndex+1];  
  }  
  else   //上移
  {  
  if(   sel.selectedIndex   ==   0   )  
  nextNode   =   null;  
  else  
  nextNode   =   sel.options[sel.selectedIndex-1];  
  }  
  if(   nextNode   )   node.swapNode(nextNode);   //移动
  }  
  //-->  
  </script>  

 


 

下面这里介绍一个功能强大的JS函数,特别是,要移动的项目可以是多项

<SCRIPT   language="javascript">  
  /***************************************************************************************************************  
    //more   javascript   from   http://www.smallrain.net 
    *   创建时间:2004.6.23  
    *   创   建   人:LxcJie    
    *   文件描述:关于list列表框的一些工具方法  
    *  
    *   主要方法:  
    *   1,   moveUp(oSelect,isToTop)   ---   向上移动一个list列表框的选中项目,  可以支持多选移动,可以设置是否移动到顶层  
    *   2,   moveDown(oSelect,isToBottom)-   向下移动一个list列表框的选中项目, 可以支持多选移动,可以设置是否移动到底层  
    *   3,   moveSelected(oSourceSel,oTargetSel)   -   在两个列表框之间转移数据  
    *   4,   moveAll(oSourceSel,oTargetSel)-   转移两个列表框之间的全部数据  
    *   5,   deleteSelectItem(oSelect)   ---   删除所选的项目  
    *    
    ****************************************************************************************************************/  
     
  /**  
    *   使选中的项目上移  
    *  
    *   oSelect:   源列表框  
    *   isToTop:   是否移至选择项到顶端,其它依次下移,  
    *                     true为移动到顶端,false反之,默认为false  
    */  
  function   moveUp(oSelect,isToTop)  
  {  
          //默认状态不是移动到顶端  
          if(isToTop   ==   null)  
                  var   isToTop   =   false;  
                   
          //如果是多选------------------------------------------------------------------  
          if(oSelect.multiple)  
          {  
                  for(var   selIndex=0;   selIndex<oSelect.options.length;   selIndex++)  
                  {  
                          //如果设置了移动到顶端标志  
                          if(isToTop)  
                          {  
                                  if(oSelect.options[selIndex].selected)  
                                  {  
                                          var   transferIndex   =   selIndex;  
                                          while(transferIndex   >   0   &&   !oSelect.options[transferIndex   -   1].selected)  
                                          {  
                                                  oSelect.options[transferIndex].swapNode(oSelect.options[transferIndex   -   1]);  
                                                  transferIndex   --;  
                                          }  
                                  }  
                          }  
                          //没有设置移动到顶端标志  
                          else  
                          {  
                                  if(oSelect.options[selIndex].selected)  
                                  {  
                                          if(selIndex   >   0)  
                                          {  
                                                  if(!oSelect.options[selIndex   -   1].selected)  
                                                          oSelect.options[selIndex].swapNode(oSelect.options[selIndex   -   1]);  
                                          }  
                                  }  
                          }  
                  }  
          }  
          //如果是单选--------------------------------------------------------------------  
          else  
          {  
                  var   selIndex   =   oSelect.selectedIndex;  
                  if(selIndex   <=   0)  
                          return;  
                  //如果设置了移动到顶端标志  
                  if(isToTop)  
                  {  
                          while(selIndex   >   0)  
                          {  
                                  oSelect.options[selIndex].swapNode(oSelect.options[selIndex   -   1]);  
                                  selIndex   --;  
                          }  
                  }  
                  //没有设置移动到顶端标志  
                  else                  
                          oSelect.options[selIndex].swapNode(oSelect.options[selIndex   -   1]);  
          }  
  }  
   
  /**  
    *   使选中的项目下移  
    *  
    *   oSelect:   源列表框  
    *   isToTop:   是否移至选择项到底端,其它依次上移,  
    *                     true为移动到底端,false反之,默认为false  
    */  
  function   moveDown(oSelect,isToBottom)  
  {  
          //默认状态不是移动到顶端  
          if(isToBottom   ==   null)  
                  var   isToBottom   =   false;  
                   
          var   selLength   =   oSelect.options.length   -   1;  
           
          //如果是多选------------------------------------------------------------------  
          if(oSelect.multiple)  
          {  
                  for(var   selIndex=oSelect.options.length   -   1;   selIndex>=   0;   selIndex--)  
                  {  
                          //如果设置了移动到顶端标志  
                          if(isToBottom)  
                          {  
                                  if(oSelect.options[selIndex].selected)  
                                  {  
                                          var   transferIndex   =   selIndex;  
                                          while(transferIndex   <   selLength   &&   !oSelect.options[transferIndex   +   1].selected)  
                                          {  
                                                  oSelect.options[transferIndex].swapNode(oSelect.options[transferIndex   +   1]);  
                                                  transferIndex   ++;  
                                          }  
                                  }  
                          }  
                          //没有设置移动到顶端标志  
                          else  
                          {  
                                  if(oSelect.options[selIndex].selected)  
                                  {  
                                          if(selIndex   <   selLength)  
                                          {  
                                                  if(!oSelect.options[selIndex   +   1].selected)  
                                                          oSelect.options[selIndex].swapNode(oSelect.options[selIndex   +   1]);  
                                          }  
                                  }  
                          }  
                  }  
          }  
          //如果是单选--------------------------------------------------------------------  
          else  
          {  
                  var   selIndex   =   oSelect.selectedIndex;  
                  if(selIndex   >=   selLength   -   1)  
                          return;  
                  //如果设置了移动到顶端标志  
                  if(isToBottom)  
                  {  
                          while(selIndex   <   selLength   -   1)  
                          {  
                                  oSelect.options[selIndex].swapNode(oSelect.options[selIndex   +   1]);  
                                  selIndex   ++;  
                          }  
                  }  
                  //没有设置移动到顶端标志  
                  else                  
                          oSelect.options[selIndex].swapNode(oSelect.options[selIndex   +   1]);  
          }  
  }  
   
  /**  
    *   移动select的部分内容,必须存在value,此函数以value为标准进行移动  
    *  
    *   oSourceSel:   源列表框对象    
    *   oTargetSel:   目的列表框对象  
    */  
  function   moveSelected(oSourceSel,oTargetSel)  
  {  
          //建立存储value和text的缓存数组  
          var   arrSelValue   =   new   Array();  
          var   arrSelText   =   new   Array();  
          //此数组存贮选中的options,以value来对应  
          var   arrValueTextRelation   =   new   Array();  
          var   index   =   0;//用来辅助建立缓存数组  
           
          //存储源列表框中所有的数据到缓冲中,并建立value和选中option的对应关系  
          for(var   i=0;   i<oSourceSel.options.length;   i++)  
          {  
                  if(oSourceSel.options[i].selected)  
                  {  
                          //存储  
                          arrSelValue[index]   =   oSourceSel.options[i].value;  
                          arrSelText[index]   =   oSourceSel.options[i].text;  
                          //建立value和选中option的对应关系  
                          arrValueTextRelation[arrSelValue[index]]   =   oSourceSel.options[i];  
                          index   ++;  
                  }  
          }  
           
          //增加缓存的数据到目的列表框中,并删除源列表框中的对应项  
          for(var   i=0;   i<arrSelText.length;   i++)      
          {  
                  //增加  
                  var   oOption   =   document.createElement("option");  
                  oOption.text   =   arrSelText[i];  
                  oOption.value   =   arrSelValue[i];  
                  oTargetSel.add(oOption);  
                  //删除源列表框中的对应项  
                  oSourceSel.removeChild(arrValueTextRelation[arrSelValue[i]]);  
          }  
  }  
   
  /**  
    *   移动select的整块内容  
    *  
    *   oSourceSel:   源列表框对象    
    *   oTargetSel:   目的列表框对象  
    */  
  function   moveAll(oSourceSel,oTargetSel)  
  {  
          //建立存储value和text的缓存数组  
          var   arrSelValue   =   new   Array();  
          var   arrSelText   =   new   Array();  
           
          //存储所有源列表框数据到缓存数组  
          for(var   i=0;   i<oSourceSel.options.length;   i++)  
          {  
                  arrSelValue[i]   =   oSourceSel.options[i].value;  
                  arrSelText[i]   =   oSourceSel.options[i].text;  
          }  
           
          //将缓存数组的数据增加到目的select中  
          for(var   i=0;   i<arrSelText.length;   i++)      
          {  
                  var   oOption   =   document.createElement("option");  
                  oOption.text   =   arrSelText[i];  
                  oOption.value   =   arrSelValue[i];  
                  oTargetSel.add(oOption);  
          }  
           
          //清空源列表框数据,完成移动  
          oSourceSel.innerHTML   =   "";  
  }  
   
  /**  
    *   删除选定项目  
    *  
    *   oSelect:   源列表框对象    
    */  
  function   deleteSelectItem(oSelect)  
  {  
          for(var   i=0;   i<oSelect.options.length;   i++)  
          {  
                  if(i>=0   &&   i<=oSelect.options.length-1   &&   oSelect.options[i].selected)  
                  {  
                          oSelect.options[i]   =   null;  
                          i   --;  
                  }  
          }  
  }  
   
  //js文件完毕  
  </SCRIPT>

 


Tags: web  JSP编程  

原创文章如转载,请注明:转载自:飞扬部落编程仓库 : http://www.busfly.net/csdn/

本文链接地址:http://www.busfly.net/csdn/post/HTML-select-move.html

如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~

     
相关文章:




◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
Feed订阅集
网站分类
勤劳致富^.^
最近发表
最新评论及回复
最近留言
随机推荐文章
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(VS为主):3769186.