HTML:无法在<script>块中执行代码,但能够在控制台</script>中运行

时间:2014-05-22 10:47:40

标签: javascript html

这是我的代码:

<html>
    <head>
        <script>
            document.getElementById("id").onclick = function(){
                alert();
            }
        </script>
    </head>
    <body>
        <label id="id">A label</label>
    </body>
</html>

这很简单,但我无法让它发挥作用。

当我在<script>中复制代码并在控制台上运行它时,它运行得很好。

1 个答案:

答案 0 :(得分:2)

onclick事件未触发,因为绑定click事件时该元素不存在(尚未加载DOM)。

要解决此问题,您可以在关闭body标签之前放置脚本(1) 或者将您的代码包装在DOM加载的事件中(2)。

1)

<html>
    <head>            
    </head>
    <body>
        <label id="id">A label</label>
        <script>
            document.getElementById("id").onclick = function(){
                alert();
            }
        </script>
    </body>
</html>

2)

window.onload = function () {
   document.getElementById("id").onclick = function(){
      alert();
   }
}