DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 基於javascript實現listbox左右移動
基於javascript實現listbox左右移動
編輯:關於JavaScript     

本文實例講解了javascript實現listbox左右移動的詳細代碼,分享給大家供大家參考,具體內容如下

效果圖:

具體代碼:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>listbox左右移動</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程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved