有没有办法在没有 for 循环的情况下获取所有 Class 元素?

Hai*_*zai 3 html javascript css dom loops

所以我想通过 document.getElementsByClassName(); 获取所有类元素;

<body>
    <div class="circle" id="red"></div>

    <div class="circle" id="blue"></div>

    <div class="circle" id="yellow"></div>

    <input id="disappear" type="button" value="disappear" onclick="disappear()">
  </body>

<script>
     function disappear(){
       document.getElementsByClassName(".circle").style.display = none;
     }
</script>
Run Code Online (Sandbox Code Playgroud)

我想让那些圆圈消失 document.getElementsByClassName(".circle").style.display = none;

这不起作用所以我使用了

function disappear(){
            var x, i;
            x = document.querySelectorAll(".circle");
              for (i = 0; i < x.length; i++) {
                x[i].style.display = "none";
              }
        }
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有办法在没有循环的情况下选择所有类?

Ori*_*ori 5

您需要一个循环来迭代这些项目。但是,Document.querySelectorAll()返回一个 NodeList,您可以使用NodeList.forEach()(仍然是一个循环)来迭代元素并隐藏它们:

function disappear() {
  document.querySelectorAll(".circle").forEach(el => el.style.display = 'none');
}
Run Code Online (Sandbox Code Playgroud)
<body>
  <div class="circle" id="red">1</div>

  <div class="circle" id="blue">2</div>

  <div class="circle" id="yellow">3</div>

  <input id="disappear" type="button" value="disappear" onclick="disappear()">
</body>
Run Code Online (Sandbox Code Playgroud)