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>