JS点击事件——Uncaught TypeError: Cannot set property 'onclick' of null
2015-08-14 16:59
911 查看
html代码:
JS代码:
需要实现的效果:单击button按钮时image消失。
我的做法:相关代码如上面所示,把js代码放在<head>中,于是报错Uncaught TypeError: Cannot set property 'onclick' of null。
改进做法:把JS代码放到</body>结束之前,完美实现。
提问:为什么会出现这种情况?是不是与JS代码的执行顺序有关。
解答:通过查阅一些资料,了解到放在<head>中的JS代码是优先于页面被执行的:
来源:点击打开链接
另一种方法也可达到目的:把原本的JS代码放入window.onload=function() { ... }中,window.onload表示页面加载完成后执行的函数,这样JS代码即使放在<head>中也可以完美实现效果。
<body> <button id="button">点击我</button> <img id="image" src="cat.png" width="100px"> </body>
JS代码:
<script> var button = document.getElementById("button"), image = document.getElementById("image"); button.onclick = function () { image.style.display = "none"; }; </script>
需要实现的效果:单击button按钮时image消失。
我的做法:相关代码如上面所示,把js代码放在<head>中,于是报错Uncaught TypeError: Cannot set property 'onclick' of null。
改进做法:把JS代码放到</body>结束之前,完美实现。
提问:为什么会出现这种情况?是不是与JS代码的执行顺序有关。
解答:通过查阅一些资料,了解到放在<head>中的JS代码是优先于页面被执行的:
来源:点击打开链接
另一种方法也可达到目的:把原本的JS代码放入window.onload=function() { ... }中,window.onload表示页面加载完成后执行的函数,这样JS代码即使放在<head>中也可以完美实现效果。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 在Windows 8.1的IE 11中屏蔽双击放大功能
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- [译] React 入门
- JavaScript拆分字符串时产生空字符的原因
- IE8开发人员工具教程(二)
- 通过Mootools 1.2来操纵HTML DOM元素
- WEB标准网页布局中尽量不要使用的HTML标签
- 在flex中执行一个javascript方法的简单方式