什么是“button is null”?在Javascript中意味着
What does "button is null" in Javascript mean?
我刚开始用JavaScript编码,我决定运行一些代码。(如下所示)
var handleClick = function (event) {
alert('Hello there!');
};
var button = document.querySelector('#big-button');
button.addEventListener('click', handleClick);
然而,每当我运行代码时,它都会说按钮为空。帮助吗?
来自文档:
如果没有找到匹配项则返回null;否则,返回第一个匹配的元素。
所以,当你运行querySelector
时,DOM中没有ID为big-button的元素。
这通常是由于将脚本放在head
中并试图访问body
中的元素而引起的。处理这个问题的方法包括:
- 移动
- 将代码封装在一个函数中,并将该函数绑定为
load
事件处理程序。 - 将事件监听器绑定到
window
,并在事件触发时测试event.target
,以查看它是否与元素匹配。
<script>
,使其出现在您试图访问的元素之后。这可以直接在它之后或在</body>
标签之前。在本例中,这意味着当您尝试执行button.addEventListener('click', handleClick)
行时,变量'button'为null。当代码执行时,如果页面上没有一个id为"big-button"的元素,则会发生这种情况,您试图通过调用document.querySelector('#big-button');
将代码移动到onload
块中
window.onload = function(){
var button = document.querySelector('#big-button');
button.addEventListener('click', handleClick);
}
<button id="big-button">click me</button>
<script>
var handleClick = function (event) {
alert('Hello there!');
};
var button = document.querySelector('#big-button');
button.addEventListener('click', handleClick);
</script>
相关文章:
- Javascript:var%20C与常规var相比意味着什么
- UMD支持贯穿我们的JavaScript插件意味着
- 双括号在javascript中意味着什么以及如何访问它们
- 这个文档语法在MDN中对JavaScript函数意味着什么
- 这个表达式在JavaScript中意味着什么:if(special_validations中的$(element).at
- 选中Javascript意味着添加到列表中
- 可变键控集合在javascript中意味着什么
- 用JavaScript中的+添加到innerHTML意味着什么
- 截断意味着javascript
- 在 JavaScript 中,当一个变量用逗号分隔的 3 个不同名称声明时,这意味着什么?
- 当使用JavaScript时“未定义”某些内容时,这意味着什么?
- 使用Javascript实用程序意味着什么
- 这个 if 语句如何工作和意味着?(Javascript)
- 哪个意味着生成器 - javascript
- javascript 全局变量不能存储值,如果它意味着从 HTML 元素中提取它们
- 这在Javascript中意味着什么“;typeof(arguments[0])”;
- 同时在服务器和浏览器上呈现JavaScript意味着什么
- 在Firefox上禁用JavaScript意味着我的按钮不能工作,是否有一种方法可以让按钮工作?
- 优化的纯JavaScript意味着迭代静态HTML表,根据其行/列创建对象数组
- html5/javascript意味着不能保护源代码