javascript - 选择页面上的所有 getElementsByClassName 而不指定 [0] 等

标签 javascript getelementsbyclassname

我正在尝试创建一个函数作为 WordPress 网站的一部分,以显示/隐藏具有特定类的页面元素。例如。任何使用“show-hide”类的页面元素(行、容器、文本 block 等)都应该通过单击按钮来隐藏/显示。

我已经成功了,但我确信必须有更好的方法来实现类似的结果。我希望能够选择页面上的所有显示隐藏类,而无需每次指定数字( [1], [2], [3], [3], [6]... )使用过。

我对 javascript 非常陌生,因此任何有关生成一系列值或使用通配符 * 符号来实现此目的的帮助或建议将不胜感激。

function myFunction() {
  var x = document.getElementsByClassName("show-hide");

  if (x[0].style.display === "none") {
    x[0].style.display = "block";
  } else {
    x[0].style.display = "none";
  }
  if (x[1].style.display === "none") {
    x[1].style.display = "block";
  } else {
    x[1].style.display = "none";
  }
  if (x[2].style.display === "none") {
    x[2].style.display = "block";
  } else {
    x[2].style.display = "none";
  }
  if (x[3].style.display === "none") {
    x[3].style.display = "block";
  } else {
    x[3].style.display = "none";
  }
}

最佳答案

如上所述,您可以使用循环。 这是一个简写:

for(let elem of Array.from(document.getElementsByClassName("show-hide"))) {
   elem.style.display = (elem.style.display === 'block') ? 'none' : 'block';
}

关于javascript - 选择页面上的所有 getElementsByClassName 而不指定 [0] 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55815521/

相关文章:

javascript - 单击选择元素,然后单击一个选项

javascript - querySelectorAll 和 getElementsBy* 方法返回什么?

javascript - 将回调与 Action 创建者一起使用

php - XSLT 转换搞砸了 <br/> 标签

javascript - 在 jquery 问题中设置值

javascript - 访问未命名对象的属性(对象内)

javascript - 为什么 0/0 是 NaN 而不是 Javascript 中的无穷大

javascript - 获取带有通过 javascript 添加的类的元素

javascript - 如何在 javascript 函数中使用 getElementsByClassName?

javascript - 隐藏显示菜单 getElementsByClassName