最開始想每個方法中用一個迴圈搞定,後來發現迴圈刪除後。options的索引和集合就發生了變化,刪除就不成功。有時候還出現selected為空白的現象,2個迴圈就over了;</p><p><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br /><html><br /> <head><br /> <title>addMulitOptions.html</title></p><p> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><br /> <meta http-equiv="description" content="this is my page"><br /> <meta http-equiv="content-type" content="text/html; charset=UTF-8"><br /> <script type="text/javascript"><br /> function moveLeft() {<br /> var lBox = document.getElementById("leftBox");<br /> var rBox = document.getElementById("rightBox");<br /> var count = 0;;<br /> for (var i = 0, len = lBox.length; i < len; i++) {<br /> if (lBox[i].selected) {<br /> rBox.options.add(new Option(lBox.options[i].text, lBox[i].value));<br /> count++;<br /> }<br /> }<br /> for (var i = 0; i < count; i++) {<br /> lBox.remove(lBox.selectedIndex);<br /> }<br /> }</p><p> function moveRight() {<br /> var lBox = document.getElementById("leftBox");<br /> var rBox = document.getElementById("rightBox");<br /> var count = 0;;<br /> for (var i = 0, len = rBox.length; i < len; i++) {<br /> if (rBox[i].selected) {<br /> lBox.options.add(new Option(rBox.options[i].text, rBox[i].value));<br /> count++;<br /> }<br /> }<br /> for (var i = 0; i < count; i++) {<br /> rBox.remove(rBox.selectedIndex);<br /> }<br /> }<br /> </script><br /> </head></p><p> <body><br /> <select id="leftBox" multiple="multiple" style="height: 200px; width: 100px;"><br /> <option value="1">a</option><br /> <option value="2">b</option><br /> <option value="3">c</option><br /> <option value="4">d</option><br /> </select><br /> <input type="button" value=">>" onclick="moveLeft()"/><br /> <input type="button" value="<<" onclick="moveRight()"/><br /> <select id="rightBox" multiple="multiple" style="height: 200px; width: 100px;"><br /> <option value="11">A</option><br /> <option value="22">B</option><br /> <option value="33">C</option><br /> <option value="44">D</option><br /> </select><br /> </body><br /></html>