可以't取消选中该复选框(取消选中复选框时隐藏内容)
can't uncheck the check box (hide content while checkbox is unchecked)
我想在复选框未选中时隐藏div内容。这是我的代码
我为id为"focus"(灰色大框)的div制作了几乎相同的函数:
document.getElementById("checkFocus").onchange = function() {
var one = document.getElementById("focus");
if (document.getElementById("checkFocus").checked === true) {
one.style.display = "block";
}
else one.style.display = "none";
}
它起作用了!
所以,我不明白为什么下一个功能根本不起作用:
document.getElementById("checkMass").onchange = function() {
var elem = document.querySelector("PeriodicTable")
var mass = elem.querySelectorAll("div.element > div.mass");
if (document.getElementById("checkMass").checked === true) {
mass.style.display = "block";
}
else mass.style.display = "none";
}
我做错了什么?
elem.querySelectorAll("div.element > div.mass");
不返回单个元素,而是返回所有匹配项的集合。
也就是说,你不能在数组上执行mass.style.display
,只能在单个元素上执行,所以你需要执行
if (document.getElementById("checkMass").checked === true) {
for (var i = 0; i < mass.length; i++) {
mass[i].style.display = "block";
}
else {
for (var i = 0; i < mass.length; i++) {
mass[i].style.display = "none";
}
}
相反。
querySelector("Any CSS rule")
需要一个规则,.
表示类,#
表示id,但您有querySelector("PeriodicTable")
。因此,您正在查找标记名为PeriodicTable
的元素。使用document.getElementById('PeriodicTable')
或querySelector("#PeriodicTable")
https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- 使用jquery选中/取消选中单个复选框
- 使用javascript在页面加载时取消选中所有复选框
- (取消)使用单独的复选框激活复选框列表
- jQuery-取消选中复选框
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- Javascript选中/取消选中所有复选框并将值写入文本区域
- dojo/cbtree取消选中所有复选框并选中选中复选框
- 通过选中和取消选中复选框来添加和删除数组中的值
- 当与之关联的 ng-model 为 false 时,Angularjs 复选框值不会取消选中
- 如何通过jQuery选中所有复选框并在单击一个复选框时取消选择
- 使用Javascript根据组中的值选中或取消选中复选框
- 选中和取消选中 JavaScript 中的复选框
- 可以't取消选中该复选框(取消选中复选框时隐藏内容)
- 在复选框取消选中事件中从HTML下拉列表中删除项目
- 如何使用复选框取消选中来清除单选按钮
- 复选框取消单击事件Javascript
- 选中复选框(取消)时显示另一个文本
- Javascript复选框取消选中其他复选框,反之亦然