try,把要删的放数组里,然后再删,要不顺序就乱了
----------------------------------------------
function del()
{
var i;
var z = document.getElementById("list1");
var aa=new Array();
var j=0;
for(i=0;i<z.options.length;i++)
{
if(z.options[i].selected)
{
aa[j++]=z.options[i];
}
}
for(i=0;i<aa.length;i++){
z.removeChild(aa[i]);
}
}
----------------------------------------------
function del()
{
var i;
var z = document.getElementById("list1");
var aa=new Array();
var j=0;
for(i=0;i<z.options.length;i++)
{
if(z.options[i].selected)
{
aa[j++]=z.options[i];
}
}
for(i=0;i<aa.length;i++){
z.removeChild(aa[i]);
}
}
for(i=z.options.length-1;i>=0;i--)
{
if(z.options[i].selected)
{
z.options.remove(i);
}
}
每删除一项z.options.length就减1,而i也应该对应不变
还可以另类一些
while(z.selectedIndex>=0)
{
z.options.remove(z.selectedIndex);
}
<!--
function del(iv,it)
{
var i;
var z = document.getElementById("list1");
for(i=0;i<z.options.length;i++)
{
if(z.options[i].value==iv && z.options[i].text==it)
{
z.options.remove(z.selectedIndex);
break;
}
}
}
function setSel()
{
var i;
var z = document.getElementById("list1");
var istr = "";
for(i=0;i<z.options.length;i++)
{
if(z.options[i].selected)
{
istr += z.options[i].value + "#" + z.options[i].text + "|";
}
}
return istr;
}
function getSel(str)
{
ary = str.split("|");
for(i=0;i<ary.length;i++)
{
if( ary[i] != "" )
{
ary1 = ary[i].split("#");
del(ary1[0],ary1[1]);
} }
}
//-->
</SCRIPT>
<select name="select1" size="10" id="list1" multiple>
<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>
</select><input type="button" name="Submit2" value="删除" onClick="getSel(setSel());">