日期:2014-05-16  浏览次数:20350 次

我想用js遍历到表格类的数据,为什么不起效

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>

<body> 
<div id="content_left"> 
<table> 
<tbody> 
<tr> 
<td> 
<a href="www.baidu.com">baidu</a> 
</td> 
</tr> 
<tr> 
<td> 
<a href="www.google.com">google</a> 
</td> 
</tr> 
</tbody> 
</table>
</div>
</body> 
</html> 

<script type="text/javascript">
var nav_div = document.getElementById('content_left'); 
var s = ''; 
var nav_table=nav_div.getElementsByTagName('table'); 
for(var i = 0;i<nav_table.length;i++){ 
var  nav_cells = nav_table[i].rows[0].cells;
var nav_a = nav_cells[0].getElementsByTagName('Anchor'); 
s = s + nav_a[0].href;

alert(s);
</script>
我试图得到表格里的链接地址,但是运行说对象nav_a为null或者未定义

------解决方案--------------------

<script type="text/javascript">
var nav_div = document.getElementById('content_left');
var linkArray = [];
var nav_table = nav_div.getElementsByTagName('table');
for (var i = 0; i < nav_table.length; i++) {
var s_table = nav_table[i];
for (var r = 0; r < s_table.rows.length; r++) {
var row = s_table.rows[r];
for (var c = 0; c < row.cells.length; c++) {
var cell = row.cells[c];
var a = cell.getElementsByTagName('a')[0];
if (a != null) {
linkArray.push(a.href);
}
}
}
}
alert(linkArray); 
</script>

------解决方案--------------------

var nav_a = nav_cells[0].getElementsByTagName('Anchor'); // change to
var nav_a = nav_cells[0].getElementsByTagName('a');

有两个细节注意一下,一个是editplus新建模板的dtd
他是html4的,不是xhtml的,有时候会出问题。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

另外一个是格式缩进。

<script type="text/javascript">
    var nav_div = document.getElementById('content_left');
    var s = '';
    var nav_table = nav_div.getElementsByTagName('table');
    for (var i = 0; i < nav_table.length; i++) {
    &