删除所选的列表值,各位帮帮新人。该怎么解决

删除所选的列表值,各位帮帮新人。。
function       moveOption(e2){      
                    for(var   i   =   0;i <e2.length;i++){
                      if(e2.options[i].selected){
    e2.options.remove(i);    
}
}  
}
<input   type= "button "   name= "sub "   value= " < < "   onClick= "moveOption(this.form.list2) ">
<select   name= "list1 "   size= "5 "   multiple   id= "list2 "   >
                        <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>

我想在列表list2中,选定多个值,然后删除所选的值。我用上面的代码,每次都删除不完,比如我选的是1,2,3,4。点删除后,1和3被删除了,2和4还在。继续点删除,2被删除了,4还在,继续再点才可以把4删除。请问怎么改才能好使啊?新手,请各位帮帮忙。。。  
     
                   


------解决方案--------------------
<table>
<tr>
<td>
<select id= "ls " multiple NAME= "ls ">
<option value=8> 8 </option>
<option value=6> 6 </option>
<option value=4> 4 </option>
<option value=12> 12 </option>
</select>
</td>
<td valign=middle>
<input type=button value= "-> " id=btnR onclick= "selMove( 'R ') "> <br/>
<input type=button value= " <- " id= "btnL " onclick= "selMove( 'L ') ">
</td>
<td>
<select id= "rs " multiple NAME= "rs ">
</select>
</td>
</tr>
</table>


<script language=javascript>

function selMove(flag)
{
// 根据flag判断是向左(L)还是向右移动(R)
var fromObj = (flag== 'R '?ls:rs);
var toObj = (fromObj.id== "ls "?rs:ls);
var selArr = [];

for(var i=fromObj.options.length-1;i> =0;i--)// 对源列表做一个遍历
{
if(fromObj.options[i].selected) // 判断选项是否被选中
{
selArr.push(fromObj.options[i].value); //将选中项存进数组
fromObj.options.remove(i);
}
}


for(var i=toObj.options.length-1;i> =0;i--)// 对目标列表做一个遍历
{selArr.push(toObj.options[i].value);} //将所有存进数组

selArr.sort(function(a,b){return a-b}); //排序

for(var i=0;i <selArr.length;i++)
{
var op = new Option(selArr[i],selArr[i]);
//op.selected = true;
toObj.options[i]=op;
}
}
</script>

------解决方案--------------------
function moveOption(e2){

for(var i = e2.length - 1;i> = 0;i--){
if(e2.options[i].selected){
e2.options.remove(i);