<script type="text/javascript"> 
function del(table) 

var chks=document.getElementsByName("chk") //获得当前表格所有name为chk的集合 
for(var i=chks.length-1;i>0;i--) 

if(chks[i].checked) //如果被选中就将其删掉 
mytable.deleteRow(chks[i].parentNode.parentNode.rowIndex); 


</script> 
这样就可以了
如果你要删的是第2、3个
你以前的循环是先删除第2个,可是删了后次序就乱了,你要删的第3个在删了第2个后变成第2个了,然而这时你的循环变量是第3个,所以就删不掉了

解决方案 »

  1.   


    <script type="text/javascript"> 
    function del(table) 

    var chks=document.getElementsByName("chk") //获得当前表格所有name为chk的集合 
    for(var i=chks.length-1;i>=0;i--) //i>=0;可全部删除

    if(chks[i].checked) //如果被选中就将其删掉 
    mytable.deleteRow(chks[i].parentNode.parentNode.rowIndex); 


    </script> 
      

  2.   

    fariy0120 你还在不
    各位在帮我看看这是什么问题
    <script type="text/javascript">
    function del()
    {
    var chks=document.getElementsByName("chk") //获得当前表格所有name为chk的集合
    for(var i=0;i<chks.length;i++)
    {
        alert("[for]before..i:"+i);
    if(chks[i].checked)//如果被选中就将其删掉
    {
        alert("[if]before..i:"+i);
    mytable.deleteRow(chks[i].parentNode.parentNode.rowIndex);
    alert("[if]after..i:"+i);
    }
    alert("[for]after..i:"+i);
    }


    }
    </script>
    <table border="1" id="mytable">
    <tr>
    <td>1 <input /></td><td><input /></td><td><input type="checkbox" name="chk" /></td>
    <tr>
    <tr>
    <td>2 <input /></td><td><input /></td><td><input type="checkbox" name="chk" /></td>
    <tr>
    <tr>
    <td>3 <input /></td><td><input /></td><td><input type="checkbox" name="chk" /></td>
    <tr>
    <tr>
    <td>4 <input /></td><td><input /></td><td><input type="checkbox" name="chk" /></td>
    <tr>
    <tr>
    <td>5 <input /></td><td><input /></td><td><input type="checkbox" name="chk" /></td>
    <tr>
    </table>
    <button onclick="del()">删除选定行</button>
    就选中第二行,你看看为什么弹出的是[for]after的i
    为什么[for]before没弹出来??