请教一个javascript问题

AlanProgrammer 2014-04-06 12:32:30

<html>
<head>

</head>

<body>

<p id="test">Hello World</p>

<script>

document.getElementById("test").style.color="blue";

</script>

</body>
</html>


请问在这段代码中 为什么<script>部分放在<p>部分后面字才会变成蓝色 为什么<script>放在<p>部分前面字颜色不变
...全文
460 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
AlanProgrammer 2014-04-06
  • 打赏
  • 举报
回复
引用 1 楼 zyl_lyr1019 的回复:
这样的代码是顺序加载的,如果你把script放在前面,那么你执行获取id的操作时,对应的HTML元素还不存在,所以是找不到document.getElementById("test")这个对象的。。 所以这个时候,你可以使用onload进行处理。
window.onload = function(){
    document.getElementById("test").style.color="blue";
}
这样会在整个页面的元素,结构都加载完成之后,再执行这块的js代码。
谢谢 那<script>部分放在head里面为什么也不可以呢
张运领 2014-04-06
  • 打赏
  • 举报
回复
这样的代码是顺序加载的,如果你把script放在前面,那么你执行获取id的操作时,对应的HTML元素还不存在,所以是找不到document.getElementById("test")这个对象的。。 所以这个时候,你可以使用onload进行处理。
window.onload = function(){
    document.getElementById("test").style.color="blue";
}
这样会在整个页面的元素,结构都加载完成之后,再执行这块的js代码。
AlanProgrammer 2014-04-06
  • 打赏
  • 举报
回复
引用 10 楼 showbo 的回复:
script是按照先后出现的循序执行,你的script只能引用script之前输出的html对象,你放到p在script后p都没有生成,当然引用不到,1#已经说过了
script部分放在head里面 p部分放在body里面 script是在head之前的 这样也不可以 必须要用window.onload是吗
Go 旅城通票 2014-04-06
  • 打赏
  • 举报
回复
script是按照先后出现的循序执行,你的script只能引用script之前输出的html对象,你放到p在script后p都没有生成,当然引用不到,1#已经说过了
AlanProgrammer 2014-04-06
  • 打赏
  • 举报
回复
我懂了 就是放在<head>里面也要用window.onload方法来加载
AlanProgrammer 2014-04-06
  • 打赏
  • 举报
回复
引用 7 楼 showbo 的回复:
<html> <head> <script> window.onload=function(){ document.getElementById("test").style.color="blue"; } </script> </head> <body> <p id="test">Hello World</p> <script> </script> </body> </html>
谢谢版主 您的意思我懂 我的意思是那<script>部分放在<head>里面为什么也不可以呢 <head>里面的信息也是页面一打开就加载的是吗
Go 旅城通票 2014-04-06
  • 打赏
  • 举报
回复
<html> <head> <script> window.onload=function(){ document.getElementById("test").style.color="blue"; } </script> </head> <body> <p id="test">Hello World</p> <script> </script> </body> </html>
AlanProgrammer 2014-04-06
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
放前面DOM对象还没生成导致找不到对象, 可以用1#的,放前面要放到onload事件中,这样所有的对象都加载完毕了
谢谢 那<script>部分放在head里面为什么也不可以呢
Go 旅城通票 2014-04-06
  • 打赏
  • 举报
回复
放前面DOM对象还没生成导致找不到对象, 可以用1#的,放前面要放到onload事件中,这样所有的对象都加载完毕了

87,904

社区成员

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

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