"getElementsByTagName(...)[0]"未定义?

Bob*_*les 7 html javascript events

我有以下代码,它基本上切换了一堆图像.

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            var num = 1;
            img = document.getElementsByTagName("img")[0];
            hbutton = document.getElementsByTagName("h1")[0];
            hbutton.onclick = function() {
                num += 1;
                img.src = num + ".jpg";
            }
        </script>
    </head>
    <body>
        <h1>Press Here!</h1>
        <img src = "1.jpg"></img>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我运行它时,没有任何反应,因为我的Firebug控制台显示以下错误.

    hbutton is undefined    
---
    hbutton.onclick = function() {
Run Code Online (Sandbox Code Playgroud)

当我在页面加载后只运行JS时,它工作得非常好!!! 为什么是这样?

Jul*_*ian 14

您的代码在定义h1标记之前执行.您必须在onload处理程序中运行它或将它放在/ body之前