为什么我把script放到head部分程序会报错

为什么我把script放到head部分程序会报错

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>attributes</title>
<script>
var attr=document.createAttribute("data");
attr.value="wrap";
var div=document.getElementById("box");
div.attributes.setNamedItem(attr);

</script>
</head>
<body>
<div id="box"></div>
</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好!

这是因为:代码是自上而下执行的 script标签放在head中,它需要调用的dom元素(例如这里的"box)还没有加载出来所以会报错。

建议将script标签写在body下面,或者是给script添加一个预加载的函数:

http://img1.sycdn.imooc.com//climg/5cbaf3cb0001f86104940166.jpg

如果帮助到了你欢迎采纳 祝学习愉快~

Sherlock_bourne 2019-04-20 18:24:29

因为电脑读取时,是从上往下读取,读到js代码“div=document.getElementById("box");”时,因为名为“box”的元素还在下面,故读取不到,系统会报错。当然,有时就是要吧js放在上面,后面的课程会讲到的。

  • 同学你好~ 你说的是正确的。如果是引入外部js文件是可以写在上面的~ 祝学习愉快~
    2019-04-20 18:35:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师