使用javascript调用Div的Onclick

时间:2012-04-23 09:26:16

标签: javascript

我想在div的onclick事件中发出警告。

这是我的代码:

<script type="text/javascript">
document.getElementById('new_div').click(function() {
    alert(1);

});

</script>

<div id="new_div" style="border:1px solid;">
Clicked Me......
</div>

但是在加载页面时会显示错误:

document.getElementById("new_div") is null

我的代码中有什么问题?

6 个答案:

答案 0 :(得分:3)

编辑:这应该是一个更好的解决方案,我在JavaScript中有点生疏。

您需要在加载页面后加载JavaScript事件处理程序。最简单的方法是在文档加载完成后加载代码,窗口转换onload-event。

<script type="JavaScript">
window.onload = function(){
    document.getElementById('new_div').onclick = function() {
        alert("Good morning, you are very beautiful today!");
    }
}
</script>

答案 1 :(得分:1)

你在javascript代码之后定义了div,所以当你添加你的处理程序时,div还不存在

反转您的代码

<div id="new_div" style="border:1px solid;">
Clicked Me......
</div>


<script type="text/javascript">
   console.log(document.getElementById('new_div'))
</script>

正确附加事件使用addEventListener(和attachEvent用于IE&lt; 9) 或者只是使用document.getElementById('new_div').onclick = ...(但不推荐使用,因为您删除了以前定义的任何处理程序,如果有的话)

答案 2 :(得分:0)

当您的javascript执行时,尚未加载new_div。

尝试这样的事情:

$(document).ready(function()
{
    $('#new_div').click(function()
    {
        alert(1);
    }); 
});

修改

我假设您使用jQuery,因为您使用.click(function() {

答案 3 :(得分:0)

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

  <script type="text/javascript">
   function clicked(item) {
    alert($(item).attr("id"));
   }
  </script>


  <div onclick="clicked(this);" id="test">test</div>

答案 4 :(得分:0)

我认为你jquery能很好地解决你的问题。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#new_div').click(function() {
    alert(1);
    });
});
</script>

你的HTML保持不变

答案 5 :(得分:0)

试试这个

          <html>
       <head>

    <script type="text/javascript">
    $(document).ready(function(){
      $("#new_div").click(function(){
        alert(1);
      });
    });
    </script>
    </head>

   <body>
    <div id="new_div" style="border:1px solid;">
    Clicked Me......
       </div>
     </body>
    </html>