JS [撞墙] document.querySelector("").checked

目标:点击空白处,收起左边样式标签

方法:尝试点空白处,使input被点击,进而改变样式

 <input type="checkbox" id="side-menu-switch" />

  <div class="side-menu">
    ...
  </div>

.side-menu {
  /* X轴移动 起始 - 往左 先收起 */
  transform: translateX(-100%);
  /* 转场效果0.5秒 */
  transition: 0.3s all linear;
}

#side-menu-switch:checked + .side-menu {
  transform: translateX(0);
}
1. 从DOM元素下手,使HTML标签内移除 checked="checked"

    document
    .querySelector("#side-menu-switch")
    .removeAttribute("checked");

无法移除,因本身 <input type="checkbox" id="side-menu-switch" />
并无 checked="checked"
2. 因此尝试点击拉开处,HTML标签内新增 checked="checked"

     document
     .querySelector("#side-menu-switch")
     .setAttribute("checked", "checked");

而後重复动作1. 移除
第一次有效,此时<input type="checkbox" id="side-menu-switch" />
第二次後无效

3. 因此确认css :checked 除第一次後与 html checked="checked" 无关

得知HTML标签之checked="checked" 与 CSS #side-menu-switch:checked
无关後

4. How to check if a checkbox is checked using JavaScript?

https://flaviocopes.com/how-to-check-checkbox-checked/
检查css是否正在使用该虚拟Class,但用不到= =

5. Element.remove()

不对= =这是移除整个DOM。

6. 求救XD

把checkbox打开,监听点击後的target,确认内部有checked:true

document.querySelector("#side-menu-switch").addEventListener("click", checkEvent);

function checkEvent(e){
  console.log(e); // target > checked
 
}

灯愣!!!

allDomArray.forEach(function (item, index) {
  item = item.addEventListener("click", changeStatus);
});

function changeStatus(){
 document.querySelector("#side-menu-switch").checked = false;
}

注意:

1.监听要使用target

2.查看资料直接用e,非e.target


<<:  Day 31 - 迟来的铁人赛心得

>>:  What is Dependency Injection?

30天学会 Python-Day28: 选择档案

tkinter tkinter 是 Python 中用於制作 GUI 的套件 可以用 tkinter...

[Day 19] 第一主餐 pt.11-财报资料,我全都要

上一篇我们修改了资料库 并且成功地把BeautifulSoup的资料送到Database内了 今天我...

# Day22--眼前一黑...啊!原来是终端机!

这个时候就要打开那个工程师很常用的东西,以前对工程师的印象就是打开一个黑黑的东西,输入一些什麽东西。...

[DAY 17] VAE 简介

前言 我们已经知道了可以用一个 Auto Encoder-Decoder 的结构来学习记忆 Inpu...

JS 30 - 将 JSON 资料应用到统计学!

大家好! 今天我们要实作解析 JSON 资料,并计算资料的变异数。 我们进入今天的主题吧! 公式 母...