<script language="javascript">
var arr=document.getElementsByTagName('table');
var x=arr.getElementsByTagName("td");alert(x.length);
var tdvalue=new Array("电视剧","电影","动漫","日韩电视剧","武林外传","色戒","柯南","爱在哈佛","天龙八部","英雄","蜡笔小新","金三顺","射雕英雄传","天下无贼","灌篮高手","浪漫满屋");
var tdnode =new Array();
var i;
for(i=0;i<x.length;i++)
{
tdnode[i]=document.createTextNode(tdvalue[i]);
x[i].appendChild(tdnode[i]);
}
</script>
</head>
<body>
<table id="te" width="699" border="1" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<table ></table>
<table ></table>
为什么我取出来的值是为0呢?我明明有很多table的标签的?大神们帮帮忙

解决方案 »

  1.   

    你把 html标签和 javascript脚本 换个位置试试 js拿到下面来
      

  2.   


    <body>
    <table id="te" width="699" border="1" cellpadding="0" cellspacing="0" align="center">
      <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
    </table>
    </body>
    <script language="javascript">
    var arr=document.getElementsByTagName('table');
    var x=arr.getElementsByTagName("td");alert(x.length);
    var tdvalue=new Array("电视剧","电影","动漫","日韩电视剧","武林外传","色戒","柯南","爱在哈佛","天龙八部","英雄","蜡笔小新","金三顺","射雕英雄传","天下无贼","灌篮高手","浪漫满屋");
    var tdnode =new Array();
    var i;
    for(i=0;i<x.length;i++)
    {
    tdnode[i]=document.createTextNode(tdvalue[i]);
    x[i].appendChild(tdnode[i]);
    }
    </script>
      

  3.   

    <table id="te" width="699" border="1" cellpadding="0" cellspacing="0" align="center">
      <tr>
      <td id="x">&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      </tr>
    </table><script language="javascript">
    var arr=document.getElementsByTagName('table')[0];
    var x=arr.getElementsByTagName("TD");
    alert(x.length);
    var tdvalue=new Array("电视剧","电影","动漫","日韩电视剧","武林外传","色戒","柯南","爱在哈佛","天龙八部","英雄","蜡笔小新","金三顺","射雕英雄传","天下无贼","灌篮高手","浪漫满屋");
    var tdnode =new Array();
    var i;
    for(i=0;i<x.length;i++)
    {
    tdnode[i]=document.createTextNode(tdvalue[i]);
    x[i].appendChild(tdnode[i]);
    }
    </script>
      

  4.   

    但是还是获取不了td的数量,table数量可以了
      

  5.   

    document.getElementsByTagName 获得的是个数组var arr=document.getElementsByTagName('table')[0];
    这样就行了
      

  6.   

    注意,你的JS代码在执行的时候,可能页面还没有加载完毕
    所以,加上window.onload再试试看
    另外,关于document.getElementsByTagName还是少用为妙,请看这个帖子:【分享】深入挖掘document.getElementsByTagName()方法的返回值