javascript - JavaScript 检查复选框是否选中
问题描述
我想使用复选框更改背景颜色,但它只能工作一次。意思是如果我再次点击它没有任何改变。
<body>
<label class="switch">
<input type="checkbox" onclick="check();">
<span class="slider round"></span>
</label>
</body>
<script>
function check() {
if (document.getElementsByTagName('input').checked) {
document.body.style.backgroundColor = 'white';
} else {
document.body.style.backgroundColor = 'black';
}
}
</script>
解决方案
该
Element.getElementsByTagName()
方法返回具有给定标签名称的元素的实时 HTMLCollection。
在这种情况下,您根本不需要使用getElementsByTagName()
。只需传递this
给函数,以便您可以在函数体中引用该元素,如下所示:
function check(chk) {
if (chk.checked) {
document.body.style.backgroundColor = 'white';
} else {
document.body.style.backgroundColor = 'black';
}
}
<body>
<label class="switch">
<input type="checkbox" onclick="check(this);">
<span class="slider round"></span>
</label>
</body>
推荐阅读
- sql - 从 Microsoft Flow 将行插入 SQL Server
- android - android跳过截击动作
- php - 遇到未捕获的异常选项,错误,意外的 '`',期待 ',' 或 ')' - 类型:使用 CodeIgniter Web 框架的 ParserError
- git - 我把git弄得一团糟,有人能解释一下我做错了什么吗?
- apache-spark-sql - 遍历火花数据框并为每行连接两列
- php - Laravel - 我无法登录用户
- gradle - 无法在 mac 中设置 GRADLE_HOME
- python - 有什么方法可以在 python 中阻止 sql 查询?
- wordpress - 如何在 iMacros 中进行 while 循环?
- report - 根据odoo12中的状态在打印菜单中隐藏报告