当我删除 一行的ID为“tbody”时 alert 显示的值为什么不是 1,是不是 rows集合必须是2行以上才行
------------------------------------------
对,如果只有以行的话,返回的就不是数组了,当然也就没有length属性了,length就为undefined了

解决方案 »

  1.   

    <script language="javascript">
    var tb = document.getElementById("tb");
    var trow=tb.rows;
    for(var i=0;i<trow.length;i++){
    if(trow[i].id=="tbody"){
    alert(trow(i).cells(0).innerText);
    }
    }
    </script>
      

  2.   

    <html>
    <head>
    <title>tb</title>
    </head><body>
    <table width="500" border="1" id="tb">
    <tr id="head">
    <td>head</td>
    <td>head</td>
    <td>head</td>
    </tr>
    <tr myTag="tbody">
    <td>tbody1</td>
    <td>tbody1</td>
    <td>tbody1</td>
    </tr>
    <tr myTag="tbody">
    <td>tbody2</td>
    <td>tbody2</td>
    <td>tbody2</td>
    </tr>
    <tr id="foot">
    <td>foot</td>
    <td>foot</td>
    <td>foot</td>
    </tr>
    </table>
    <script language="javascript">
    var o = document.getElementById("tb").rows;
    for (var i=0;i<o.length ;i++ )
    {
    var myTag = o[i].getAttributeNode("myTag")?o[i].getAttributeNode("myTag").value:null;
    if (myTag&&myTag=="tbody")
    {
    alert(o[i].cells[0].innerHTML);
    }
    }
    </script>
    </body>
    </html>