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注意事项)
<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注意事项)
<!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>
<!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>
这是嘛东东? var dd=document.getElementById("dd"); 这才是正确的写法,你要的是table元素而不是它的值。
var tb=document.getElementByTagName("table")[0];
for(var i=0;i<tb.rows.length;i++)
alert(tb.rows[i].innerHTML)
<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>