为了账号安全,请及时绑定邮箱和手机立即绑定

求解各位大神,把js的位置像css那样放,为什么不可以?

<!doctype html>
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">
	<title>初识css</title>
	<script type="text/javascript">
	document.write("hello");
	document.getElementById("p1").style.color="blue";
	</script>
	
</head>
<body>
<p id="p1">我是第一段文字</p>
<p id="p2">我是第二段文字</p>
</body>
</html>
为什么P1不显示为蓝色?而css这样的格式就可以呢

正在回答

3 回答

因为浏览器是从上到下渲染页面的,body还没加载,所以你的脚本找不到body的内容

0 回复 有任何疑惑可以回复我~
#1

Maxmengt

那为什么css就可以那样呢?求解。
2016-03-29 回复 有任何疑惑可以回复我~
#2

迷途的马尔斯 回复 Maxmengt

这个你要理解浏览器的渲染原理了,浏览器构建DOM的时候会把CSS的样式表现出来,所以说CSS文件会被调用,但script脚本不同,你在DOM构建的时候就插入脚本,你的脚本找不到body这个结点,所以就无法通过JS变色
2016-03-30 回复 有任何疑惑可以回复我~
#3

Maxmengt 回复 迷途的马尔斯

有点理解了。谢谢你!
2016-03-30 回复 有任何疑惑可以回复我~

谢谢各位,后面的章节是这么解释的:javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的

0 回复 有任何疑惑可以回复我~
#1

Maxmengt

感觉这个跟你提的问题没什么关系呀...
2016-03-29 回复 有任何疑惑可以回复我~

HTML可以理解为面向过程的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求解各位大神,把js的位置像css那样放,为什么不可以?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信