myTable=document.getElementById("myTable");
  tbody = myTable.getElementsByTagName("tbody");
  alert(tbody.length);如题 getElementById放在head里面的时候就会报错:无法获取属性“getElementsByTagName”的值: 对象为 null 或未定义。放在文档末尾出就没问题。
这个问题怎样解决啊?难道就放一直到后面去么

解决方案 »

  1.   

    无法获取属性“getElementsByTagName”的值: 对象为 null 或未定义。有没有用<script>
    getElementsBy……
    </script>
    试下吧!
      

  2.   

    放在head里是因为,dom还没加载,document.getElementById("myTable")这样取不到dom对象,所以要等dom加载之后再操作。放head里需等dom加载之后操作
    window.onload = function(){
    //你的代码
    }
      

  3.   

    文档加载顺序问题。放head可以啊。但必须要用window.onload=function(){.....} 包含起来。
      

  4.   

    我试了下 <script type="text/javascript" defer="defer"></script>也可以那么defer="defer" 和  window.onload=function(){.....}  两者都是文档加载完毕执行脚本的,平常我们都使用哪个的?
      

  5.   

    为什么不把Js代码跟HTML分离呢,放在一起不便于管理,分离后在js文件中调用window.onload=function(){}
      

  6.   


    defer仅IE能认识,所以考虑兼容,最好使用window.onload ,但是onload要等待图片等元素加载完毕后才执行,楼主可以 学习一下 类似 domReady的方法,只要页面得dom树加载完毕就执行,不用等待图片加载
      

  7.   

    使用window.onload会好些
     楼上说到的domReady是个比较友好的做法,
    同时,页面的加载及渲染是比较重要的概念。但是很多书和资料都不怎么提及。
    http://www.mac52ipod.cn/post/Trident-Gecko-WebKit-Presto.php
    ...不一一给你找链接了。多阅读些相关文章,
      

  8.   

    一般放在</body>结束之前,以防止页面元素没有渲染完,JS访问不到对象而报错