我想在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
我的代码中有什么问题?
答案 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>