大家看看这个问题,为什么浏览器会报出_thtr is null的错误?求解。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获取表格某一列</title><script language="javascript" type="text/javascript">
  function getAvg(){//获取某个元素的子节点
var _tb = document.getElementById("dataTb");   //根据id得到table
   var _thread = _tb.firstChild;   //得到thread
   var _thtr = _thread.firstChild;
window.alert(_thtr);
  var scoreIndex = 0;    //记录成绩td的索引
   var _thtrChildAry = _thtr.childNodes;
   for(var i=0; i<_thtrChildAry.length; i++){
if(_thtrChildAry[i].innerText == "成绩")
{//得到内容为“成绩”的th的索引
scoreIndex = i;
break;
}
   } 
 
var _tbody = _tb.childNodes[1];    //得到tbody
var _dataTrAry = _tbody.childNodes;   //得到信息列表
var sum = 0;        //记录总分
var count = _dataTrAry.length - 1;     //得到个数除去最后一行的按钮
for(var i=0; i<_dataTrAry.length-1; i++){
var _tr = _dataTrAry[i];
sum += parseFloat(_tr.cells[scoreIndex.innerText]);
}
window.alert("总分:" + sum);
window.alert("平均分:" + sum/count);
  }
</script></head><body>
<form name="frmDOMTb" method="post" action="#">
<table width="800" border="1" cellpadding="0" id="dataTb">
  <thead>
  <tr>
    <th scope="col">序号</th>
    <th scope="col">学号</th>
    <th scope="col">姓名</th>
    <th scope="col">院系</th>
    <th scope="col">专业</th>
    <th scope="col">成绩</th>
  </tr>
  </thead>
  <tbody>
  <tr>
    <td>1</td>
    <td>20070101</td>
    <td>张三</td>
    <td>信息技术学院</td>
    <td>计算机应用</td>
    <td>80</td>
  </tr>
  <tr>
    <td>2</td>
    <td>200702101</td>
    <td>李四</td>
    <td>机电工程学院</td>
    <td>电气自动化</td>
    <td>85</td>
  </tr>
  <tr>
    <td>3</td>
    <td>20070102</td>
    <td>王五</td>
    <td>信息技术学院</td>
    <td>计算机应用</td>
    <td>65</td>
  </tr>
  <tr>
    <td>4</td>
    <td>200702102</td>
    <td>赵六</td>
    <td>机电工程学院</td>
    <td>电气自动化</td>
    <td>55</td>
  </tr>
  <tr>
    <td colspan="6" align="center">
      <input type="button" value="平均分" onclick="getAvg()" />
    </td>
  </tr>
  </tbody>
</table>
</form>
</body>
</html>

解决方案 »

  1.   

    你用的什么浏览器,是在什么时候报的错。
    我用的ie8,页面load完以及点击按钮后都没有问题
      

  2.   

    你用的什么浏览器,是在什么时候报的错。
    我用的ie8,页面load完以及点击按钮后都没有问题
      

  3.   

    IE左下角会提示大概错误。看看。DOM太麻烦,具体看是应用哪方面。
      

  4.   

    错的太离谱了,所以重新写了下
    下面的兼容FF,CHROME,IE8另外,1楼的那几位真的会睁眼说瞎话,LZ那代码在FF,Chrome下肯定是错的,在IE8下我试了下,也是不行的.function getAvg(){//获取某个元素的子节点
    var _tb = document.getElementById("dataTb"); //根据id得到table
    var _ths = _tb.getElementsByTagName('th');
    var scoreIndex = 0; //记录成绩td的索引
    for(var i=0; i<_ths.length; i++){
    if(_ths[i].innerHTML == "成绩"){//得到内容为“成绩”的th的索引
    scoreIndex = i;
    break;
    }
    }   var _tds = _tb.getElementsByTagName('td');
    var sum = 0; //记录总分
    var count = 0;
    for(var i=scoreIndex; i<_tds.length; i+=_ths.length){
    sum += parseFloat(_tds[i].innerHTML);
    count++;
    }
    window.alert("总分:" + sum);
    window.alert("平均分:" + sum/count);
    }