document.Form1.ListBox1.remove(i);写错了。i是每次都变化的。
所以,你每次删除的时候都删除不完。第一次删除0行,第二次删除第1行,第二次就该删除剩下的行中的第二行,拉下了一行。
你写成 document.Form1.ListBox1.remove(1);就可以了

解决方案 »

  1.   

    删除列表框全部方法如下:document.all.yourSelectName.options.length = 0;
      

  2.   

    或者:document.all.yourSelectName.innerHTML = "";
      

  3.   

    LxcJie(肖冲*爱*捷捷) 的方法是正解。document.Form1.ListBox1.options.length = 0;
      

  4.   

    将你的删除的开始换成最后一个,从最后一个开始,因为,你从第一个开始删除的话,index的值已经变化了。假如想全部删除的话,可以用上面的方法。
      

  5.   

    document.Form1.ListBox1.length =0;
    也可
      

  6.   

    <select name=s1>
    <option>a1
    <option>a2
    <option>a3
    </select>
    <select name=s2>
    </select>
    <p><input type=button value=change onclick="for(var i=0;i<s1.options.length;i++){s2.options[s2.options.length]=new Option(s1.options[i].text,'');}s1.innerHTML='';"></p>
      

  7.   


    document.all.select1.options.length = 0;
      

  8.   

    document.all.select1.options.length = 0;
    或者
    document.all.select1.length = 0;
    都可以的
      

  9.   

    document.all.select1.options.length = 0;