javascript - 用复选框控制 javascript
问题描述
我正在构建一个 chrome 扩展,我想用这个复选框控制 javascript:
<div class="modal-icons">
<div class="flex-container">
<div class="flex">
<label class="switch">
<input id="check" type="checkbox" checked>
<span class="slider round"></span>
</label>
</div>
</div>
</div>
如何获取 .js 文件中的状态?
我努力了 :
document.addEventListener('DOMContentLoaded', function() {
const checked = document.getElementById('check').checked;
# ACTION
});
和
var checked = document.getElementById('check').checked;
console.log('checked');
还有类似的方法,但我不确定如何获得状态。
我收到错误消息:Uncaught TypeError: Cannot read property 'checked' of null
例如,我可以写这个吗?
if (checked == true) {
console.log('checked');
}
还是会给出“已检查”的值?
有人可以帮我解释一下吗?
解决方案
问题与
var checked = document.getElementById('check').checked;
console.log('checked');
是变量checked 保持一个值并且从不更新,即如果复选框默认选中,true
即使更改也始终选中。此外,没有任何东西可以监听复选框的更新。
我会将事件侦听器绑定到元素
document.getElementById('check').addEventListener("change", event => {
if(event.target.checked) {
// Checkbox is checked
} else {
// Checkbox is not checked
}
})
推荐阅读
- php - php 转换 if 在函数中
- eclipse - 离线安装SVN连接器
- javascript - 在窗口滚动的目标 div 上添加类
- logging - log4j 不加载 Kotlin @Plugin 类
- reactjs - 在 ReactJS 中使用 HashRouter 时 this.props.location.state 在页面刷新时未定义
- vb.net - 如何使用清单文件使我的 vb.net 网站脱机工作
- java - OkHttp 3.11 和 TLS 1.2 支持
- c# - C# - 如何将名称为日期的列添加到 DataTable
- xpages - 带有 Notes 日历存储的 XPage 和匿名访问的 iNotes 日历显示错误
- c# - 只为每组记录选择最近的记录