Javascript是执行顺序是至上而下的,除非特别说明, Javascript代码不会等到页面加载完毕后才执行。
例如:
一个网页里含有以下HTML代码
<div id="ele">welcome to www.jb51.net</div>如果在这行HTML代码前,加入如下Javascript代码:
<script type="text/javascript">
document.getElementById('ele').innerHTML= 'welcome to my blog'
</script>
运行该页面,会得到这样的错误信息:“document.getElementById(‘ele') is null。”原因是,当上面的javascript运行时,页面上还没有ID为‘ele'的DOM元素。
解决办法有两种:
1. 把javascript代码放在HTML代码之后:
<div id="ele">welcome to www.jb51.net</div>
<script type="text/javascript">
document.getElementById('ele').innerHTML='welcome to my blog'
</script>
2. 等到在网页加载完毕后,运行该javascript代码。可以使用传统的解决办法(load):首先加HTML的body加入“<body load="load()”>,”然后在load()函数里调用上述javascript代码。这里要着重介绍的是用jQuery来实现:
<script>
$(document).ready(function(){
document.getElementById('ele').innerHTML= 'welcome to my blog'
})
</script>
//当然,既然用到了jQuery,更简单的写法是:
<script>
$(document).ready(function(){
$('#ele').html('welcome to my blog') //这里也可用.text()方法
})
</script>
可以把上述jQuery代码放在页面的任何位置,它总是等到页面加载完毕后才执行。
是按照先后顺序执行的。
有一个很典型的例子:
<script>alert(document.getElementById('myid'))
</script>
<div id="myid" />
<script>
alert(document.getElementById('myid'))
</script>
第一个alert显示NULL,因为HTML还未解析,元素不存在。
第二个alert显示[object HTMLDivElement]
望采纳~
jsp中是先编译“java代码”为静态代码,之后从代码第一行开始一直扫描到到代码最后一行;jsp是可以动态加载的,也就是说jsp变更不需要重启项目,如果里面有java代码的话,加载jsp的时候先编译java代码,如果有错误,直接抛出错误,不继续运行。
如果没错误的话,扫描出body中的代码显示到页面,之后再加载js。