2011-11-27 36 views
1

我不清楚为什么它不工作的JavaScript代码,当我添加到标题部分如下。JavaScript代码位于标题

我们可以在身体内放置一个JavaScript代码如下

<html> 

<head> 
    <title> Simple Test </title>  
</head> 
<body> 
     <div id="mydiv"> This is the div content </div> 

     <script type="text/javascript" > 
      document.getElementById("mydiv").innerHTML=Date();   
     </script> 

</body> 
</html> 

但是,当我把同样的JavaScript代码在标题部分这是行不通的。

<html> 
    <head> 
    <title> Simple Test </title> 

    <script type="text/javascript" > 
     document.getElementById("mydiv").innerHTML=Date();   
    </script>  

    </head> 

有人请说明问题。我知道我可以在标题中编写JavaScript函数并在事件中调用它。但是我们不能以这种方式使用。如果不行,为什么。

+2

当你把JavaScript中的,你正在试图获得的股利确实存在,但 –

+0

感谢德罗巴G,得到了点...... !!!! – JibW

回答

4

因为当加载页面时,浏览器获取到<script>元素时,#mydiv元素尚未创建。

要么使用“的onload”事件,或者把你的脚本在页面的底部。

1

当你把它放在<head>,它运行<body>存在之前。

3

这是因为页面按照读取的顺序呈现。因此,当头文件中的脚本被评估时,页面的其余部分还没有被渲染(即,myDiv元素尚未被创建)。

当您在头部的事件处理工作正常 - 处理程序设置页面的其余部分加载之前,但不可能发生的事件,直到元素存在。

+0

如何将事件监听器添加到不存在的元素 – Esailija

+0

对不起 - 是的,我已经解释过,以简化它。我一直没有明确的需要onload事件来设置它们。 – Nick

1

这是因为页面渲染顺序。您可以在创建元素之前访问元素。如果可以的话,尝试将所有JavaScript代码放在页面的末尾(在关闭body标签之前)。它会节省你的页面加载时间。如果你不能把它放在底部,把代码放在onload事件中。

+0

感谢Chamika,能否请您解释一下如何放置的JavaScript代码在onload事件 – JibW

+1

' <脚本类型= “文/ JavaScript的”> 功能负荷() { 警报( “页面加载”) ; } <体的onload = “负载()”>

的Hello World!

' –

+0

优秀...谢谢... !!!!! – JibW

5
<html> 
    <head> 
    <title> Simple Test </title> 

    <script type="text/javascript" > 
     window.onload= function(){document.getElementById("mydiv").innerHTML=Date();} 
    </script>  
</head> 

我觉得上面的代码会帮助你解决你的问题。你可以试试这个。