getElementById放在head跟放在文档末尾处的问题

rn131456789 2012-03-28 02:48:25
myTable=document.getElementById("myTable");
tbody = myTable.getElementsByTagName("tbody");
alert(tbody.length);

如题 getElementById放在head里面的时候就会报错:

无法获取属性“getElementsByTagName”的值: 对象为 null 或未定义。

放在文档末尾出就没问题。


这个问题怎样解决啊?难道就放一直到后面去么
...全文
263 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
小昭 2012-03-29
  • 打赏
  • 举报
回复
一般放在</body>结束之前,以防止页面元素没有渲染完,JS访问不到对象而报错
挨踢直男 2012-03-29
  • 打赏
  • 举报
回复
你执行js的时候,你所要的那些元素根本还没被渲染
Mr-Jee 2012-03-28
  • 打赏
  • 举报
回复
使用window.onload会好些
楼上说到的domReady是个比较友好的做法,
同时,页面的加载及渲染是比较重要的概念。但是很多书和资料都不怎么提及。
http://www.mac52ipod.cn/post/Trident-Gecko-WebKit-Presto.php
...不一一给你找链接了。多阅读些相关文章,
001007009 2012-03-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
我试了下 <script type="text/javascript" defer="defer"></script>也可以

那么defer="defer" 和 window.onload=function(){.....} 两者都是文档加载完毕执行脚本的,

平常我们都使用哪个的?
[/Quote]

defer仅IE能认识,所以考虑兼容,最好使用window.onload ,但是onload要等待图片等元素加载完毕后才执行,楼主可以 学习一下 类似 domReady的方法,只要页面得dom树加载完毕就执行,不用等待图片加载
Little_Prince_ 2012-03-28
  • 打赏
  • 举报
回复
为什么不把Js代码跟HTML分离呢,放在一起不便于管理,分离后在js文件中调用window.onload=function(){}
Acesidonu 2012-03-28
  • 打赏
  • 举报
回复
页面元素没加载怎么能获得呢,弄懂js的执行顺序。
rn131456789 2012-03-28
  • 打赏
  • 举报
回复
我试了下 <script type="text/javascript" defer="defer"></script>也可以

那么defer="defer" 和 window.onload=function(){.....} 两者都是文档加载完毕执行脚本的,

平常我们都使用哪个的?
一起混吧 2012-03-28
  • 打赏
  • 举报
回复
文档加载顺序问题。放head可以啊。但必须要用window.onload=function(){.....} 包含起来。
三石-gary 2012-03-28
  • 打赏
  • 举报
回复
页面没加载完怎么能找到元素。。
001007009 2012-03-28
  • 打赏
  • 举报
回复
放在head里是因为,dom还没加载,document.getElementById("myTable")这样取不到dom对象,所以要等dom加载之后再操作。

放head里需等dom加载之后操作
window.onload = function(){
//你的代码
}
y1253321899 2012-03-28
  • 打赏
  • 举报
回复
无法获取属性“getElementsByTagName”的值: 对象为 null 或未定义。

有没有用<script>
getElementsBy……
</script>
试下吧!
SomethingJack 2012-03-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
myTable=document.getElementById("myTable");
tbody = myTable.getElementsByTagName("tbody");
alert(tbody.length);

如题 getElementById放在head里面的时候就会报错:

无法获取属性“getElementsByTagName”的值: 对象为 null……
[/Quote]
- -页面生命周期搞懂先吧 骚年

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧