table的行是从数据库动态获取的,在js中怎样获取这个table的所有行呢例如
<table>
<div id="dd" name="dd">
    
     <%
        List l=(List)request.getAttribute("xxx");
        for(int i=0;i<list.size();i++){
        Person p=(Person)list.get(i);
                
        String divx="div"+i;
        String idx="idx"+i;
      %>    <div id=divx name=divx>       <tr><input id="idx" type="text" value="<%=p.getXXX()%>"  </tr>
    </div>     <% } %></div>
</table>在js中,我想获取所有行,
<script>
      var tt=0;
      var detailrow1 = new Object();
      var detailrows = new Array();
      var dd=document.getElementById(dd).value;      for(var i=0;i<dd.childNodes.length;i++){
        var idx="idx"+i;
        var v=document.getElementById(idx).value;
        detailrows[tt] = detailrow1;
tt++;
       detailrow1 = new Object();
      }
</script>有没有人这样做过???我这样做,总是获取的行数有问题,有没有其他办法。(注意:table中tr本来就是从数据库动态获取的,我把tr的id也改成动态变化的了,问题是在js中获取值时出现问题,还有高手给我讲一下dd.childNodes注意事项)

解决方案 »

  1.   


    <!doctype html> 
      <html> 
      <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <title>test</title> 
      </head>
      <body>
      <table id="abc" border="1">
    <tr><td>00</td><td>01</td></tr>
    <tr><td>10</td><td>11</td></tr>
      </table>
      <script type="text/javascript" style='display:block;'> 
      var tb = document.getElementById("abc");
      var tbody = tb.tBodies[0];
      for(var i=0;i<tbody.rows.length;i++)
    alert(tbody.rows[i].innerHTML)
      </script>
      
      </body> 
      </html>
      

  2.   

    修改一下
    <!doctype html> 
      <html> 
      <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <title>test</title> 
      </head>
      <body>
      <table id="abc" border="1">
        <tr><td>00</td><td>01</td></tr>
        <tr><td>10</td><td>11</td></tr>
      </table>
      <script type="text/javascript"> 
      var tb = document.getElementById("abc");
      var tbody = tb.tBodies[0];
      for(var i=0;i<tbody.rows.length;i++)
        alert(tbody.rows[i].innerHTML)
      </script>
      
      </body> 
      </html>
      

  3.   

    var dd=document.getElementById(dd).value;
    这是嘛东东? var dd=document.getElementById("dd"); 这才是正确的写法,你要的是table元素而不是它的值。
      

  4.   

    还有,你应该先搞清楚HTML中各个节点的嵌套规则,一看你的代码就知道你是不是初学的了
      

  5.   


    var tb=document.getElementByTagName("table")[0];
    for(var i=0;i<tb.rows.length;i++)
        alert(tb.rows[i].innerHTML)
      

  6.   

    document.getElementById("dd").getElementsByTagName("tr")?
      

  7.   

    <table id="abc">
      <tr><td>something 1</td></tr>
      ...
      <tr><td>something n</td></tr>
    </table>
    <script type="text/javascript">
    window.onload = function(){
      var trs = document.getElementById("abc").getElementsByTagName("tr");
      for(var i = 0; i<trs.length; i++)
        alert(trs[i].innerHTML);
    }
    </script>