javascript - 为什么在这段代码在console下执行不报错,但在网页中就执行失败?
PHP中文网
PHP中文网 2017-04-11 11:37:18
[JavaScript讨论组]



    
    
    DOM方法
    
    




报错是出在 document.getElementsByTagName('body')[0]appendChild(ele)这句话,
显示错误:Uncaught TypeError: Cannot read property 'appendChild' of undefined

新手,找了半天不知到错在哪了,求解答。谢谢各位 !

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(4)
黄舟

执行这段代码时,dom还没加载完,body元素不存在,肯定报错啊

伊谢尔伦

是页面解析顺序的原因,head先解析,执行到js代码时body还没创建,所以找不到,提示undefined。把那段代码放到body里就行了。

PHP中文网

如楼上所说,解决方法有:

  1. <script> 整块放到 </body> 之前

  2. <script> 内容更换为 window.onload = function() { /* 你写的代码 */ };

  3. 类似 jQuery/Zepto 绑定 DOMContentLoaded 事件,在事件里写要处理的代码 (注:某些浏览器不支持该事件)

PHP中文网

在执行的时候,DOM树还没加载完

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号