javascript - 在 getElementsByClassName() 中使用数组

标签 javascript arrays html

我是javaScript新手,我试图通过运行一个函数来隐藏多个div。 div 存在,它们称为 test1 直到 test8 。每次我激活该功能时,都会出现错误 document.getElementsByClassName(...).style is undefined

这是我的代码

var divs = ["test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8"];
for (var i=0; i<divs.length; i++)  {
  document.getElementsByClassName(divs[i]).style.display = "none";
  }

HTML

  <div class="test1">
    <p>Hi 1</p>
  </div>
  <div class="test2">
    <p>Hi 2</p>
  </div>
  <div class="test3">
    <p>Hi 3</p>
  </div>
  <div class="test4">
    <p>Hi 4</p>
  </div>
  <div class="test5">
    <p>Hi 5</p>
  </div>
  <div class="test6">
    <p>Hi 6</p>
  </div>
  <div class="test7">
    <p>Hi 7</p>
  </div>
  <div class="test8">
    <p>Hi 8</p>
  </div>

阅读重复的问题后,我尝试了以下操作:

function cleardiv() { 
    var divs = ["test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8"]; 
    var elems = document.getElementsByClassName(divs[i]); 
    for (var i = 0; i<elems.length; i++) { 
        elems[i].style.display = 'none'; 
    } 
}

最佳答案

当您在类中的元素上添加循环时,您删除了类名称上的循环。您需要嵌套循环来获取所有内容。

function cleardiv() { 
    var divs = ["test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8"]; 
    for (var j = 0; j < divs.length; j++) {
        var elems = document.getElementsByClassName(divs[j]); 
        for (var i = 0; i<elems.length; i++) { 
            elems[i].style.display = 'none'; 
        } 
    }
}

您还可以使用 querySelectorAll 通过单个循环来完成此操作。

function cleardiv() {
    var elems = document.querySelectorAll(".test1,.test2,.test3,.test4,.test5,.test6,.test7,.test8");
    for (var i = 0; i<elems.length; i++) { 
        elems[i].style.display = 'none'; 
    } 
}

关于javascript - 在 getElementsByClassName() 中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54891512/

相关文章:

javascript - Snowflake 中的 UDF JavaScript 实现

c - 原地转置矩阵的函数

javascript - 自定义函数停止工作

html - 如何在html中删除悬停图像的轮廓

html - CSS : different placements for img with caption

javascript - 如何使用 Javascript 添加事件监听器来验证用户输入?

javascript - 我想要 if else 在输入中的 focusOut 上,如果单击保存 btn 则执行其他操作

javascript - 表单验证 - html 和 javascript

php - 使用 switch case 以数组作为参数的 PHP 函数更新 MySQL 数据库

javascript - 计算数量*价格=总计|总计/价格 = 数量