这种小东西 最好保持兼容性

解决方案 »

  1.   

    添加到右边列表,然后删除所选项重新到左边列表无排序。
    要把排序加上就更好了。
      

  2.   


    注意一下兼容就更好了
      

  3.   

    基于大家的支持我继续写了一下排序。排序按照 -- 字符的笔画来的。高手也可以自己加上排序。代码有点乱。请高手批评意见。
    由于项目基于IE我没有写版本的问题。<HTML >
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <script type="text/javascript"  charset="utf-8">
     
     /*******************************************************/
     //pxp于20081219添加
     //两个选择框选项之间的移动,oSource为源选择框,oTarget为目标选择框,cWhich为提示文字,取值”左“或”右“。  
     
     function   selectMove(oSource,oTarget,cWhich)      
      {   
        
        if(!oSource.options.length)   
          {   
              alert(cWhich+"侧列表中已没有选项可选,无法移动!");   
              return;   
          }   
          if(oSource.selectedIndex==-1)   
          {   
             alert("操作前您首先应该从"+cWhich+"侧列表中选择一项!");   
              return;   
          }   
         
          var   mySld=new   Array();    //把要源列表框被选择的下标的值 放到 数组 中去
          
          for(i=0;i<oSource.options.length;i++)   
              if(oSource.options[i].selected)   
                  mySld[mySld.length++]=i;   
            
          for(i=0;i<mySld.length;i++)     //把 数组 添加 到目标列表中去 
          {   
                 
            var objOp=document.createElement("OPTION")
         
            objOp.value=oSource.options[mySld[i]].value;   
        objOp.text=oSource.options[mySld[i]].text;   
        
        addOptionToListShort(objOp,oTarget);  //把objOp结点插入到目标列表框oTarget中,并按字符从小到大排序。
      
      
          }   
         
         
          for(i=0;i<mySld.length;i++)    //源列表 去掉数组的值
          {   
            
             oSource.options.remove(mySld[i]-i);
            
          }   
          
         return true;
         
      }   
      
      /******************************************/
      //pxp于2008-12-19添加
      //把optionObject对象添加到oTargetList列表框中去,并且排序。排的顺序为字符笔化比较 从小到大。
      
      function addOptionToListShort(optionObject,oTargetList) 
      {
      
     
        if(oTargetList.options.length>0)   //目标列表不为空
        {
        for(j=0;j<oTargetList.options.length;j++) //遍历目标框的值
       {
            if(optionObject.text<oTargetList.options[j].text)  //要插入的值目标框的值进行比较 可以加一个自定义比较函数
     {

      oTargetList.options.add(optionObject,j);   //把结点插入到optionObject对象添加到j位置

      j=oTargetList.options.length    //跳出
      
     }
     

     if(j==oTargetList.options.length-1)  //没找到,插入到末尾
     {
      oTargetList.options.add(optionObject);   
     
      j=oTargetList.options.length   //跳出
       
     }
     
           }
        }
        
       if(oTargetList.options.length==0) //目标列表不为空 直接加上
       {
           
       oTargetList.options.add(optionObject,0);     //把结点插入到optionObject对象添加到开始位置

       }
      
        }</script>
    <tr>
    <td height="60" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable-->
    <tr> <td align="center">
    <select id="timesegmentselect" size=10 id="time" type="text"
    multiple="multiple" style="{width:100px}"> <option value="安徽卫视">
    安徽卫视
    </option>
    <option value="湖南卫视">
    湖南卫视
    </option>
    <option value="中央二套">
    中央二套
    </option>
    <option value="中央一套">
    中央一套
    </option>
    <option value="江西卫视">
    江西卫视
    </option>
    <option value="广东卫视">
    广东卫视
    </option>
    <option value="河南卫视">
    河南卫视
    </option>
    <option value=" 星期一">
    星期一
    </option>
    <option value=" 星期二">
    星期二
    </option> <option value="星期三">
    星期三
    </option> <option value=" 星期四">
    星期四
    </option>
    <option value=" 星期五">
    星期五
    </option>
    <option value="星期六">
    星期六
    </option>
    <option value="星期天">
    星期天
    </option>
    <option value="01">
    01
    </option>
    <option value="02">
    02
    </option>
    <option value="03">
    03
    </option>
    <option value="04">
    04
    </option>
    <option value="05">
    05
    </option>
    <option value="06">
    06
    </option>
    <option value="07">
    07
    </option>
    <option value="08">
    08
    </option>
    <option value="09">
    09
    </option> <option value="10">
    10
    </option> <option value="11">
    11
    </option>
    <option value="12">
    12
    </option>
    <option value="13">
    13
    </option>
    <option value="14">
    14
    </option>
    <option value="15">
    15
    </option>
    <option value="16">
    16
    </option>
    <option value="17">
    17
    </option>
    <option value="18">
    18
    </option>
    <option value="19">
    19
    </option>
    </select>
    </td>
    <td align="center">
    <select id="timesegmentselect2" size=10 type="text"
    multiple="multiple" style="{width:111px}">
    </select>
    </td>
    </tr> <tr>
    <td align="center">
    <input type="button" name="addtimesegment" value="添加>>"
    onclick="selectMove(window.document.all.timesegmentselect,window.document.all.timesegmentselect2,'左')"
    style="width:51; height:27" />
    </td> <td align="center">
    <input type="button" name="delettimesegment2" value="<<删除"
    onClick="selectMove(window.document.all.timesegmentselect2,window.document.all.timesegmentselect,'右')"
    style="width:51; height:27" />
    </td>
    </tr>
    </table>
    </HTML>