修改元素样式报错:Cannot set properties of undefined (setting 'visibility')

1、正常书写代码如下:

 <div class="cl">
      <div id="mask">
        <span id="close">X</span>
      </div>
  </div>

 <!-- JS代码如下 -->
    <script>
      let close = document.getElementById("close");
      let cl = document.getElementsByClassName("cl");
      close.onclick = function () {
        cl.style.visibility = "hidden";
      };
    </script>

2、出现报错信息:Uncaught TypeError: Cannot set properties of undefined (setting 'visibility')

 3、解决办法

   通过添加[0]来获取准确元素节点
  (1) let cl = document.getElementsByClassName("cl")[0];

   直接通过ID获取DOM元素节点
  (2) let cl = document.getElementById("cl");    

4、总结原因

使用getElementsByClassName得到的是一个HTMLCollection,要用getElementsByClassName(“content”)[0]的形式。

posted @ 2024-04-24 15:20  Wanker  阅读(689)  评论(0)    收藏  举报