javascript - 如何在单击时在具有相同类名的多个元素上切换类

标签 javascript css toggle



我无法让这段代码工作。
我正在尝试创建一个函数,该函数可以监听具有相同类名的多个元素的单击,然后在单击后,在具有特定类名的下一个元素上切换特定类名。

我正在尝试使用一个循环遍历所有“按钮”(class =“click-to-expand”),当您单击特定按钮时,它应该循环遍历特定的 div 并在下一个元素上切换类名称与 (class="expand")。

任何帮助将不胜感激!

var expandArray = document.querySelectorAll('.expand');

document.querySelectorAll('.click-to-expand').forEach(function(i) {
  i.addEventListener('click', function(e) {
    e.target.expandArray[0].classList.toggle("hidden");
  })
});
.hidden {display: none}
<div>
  <div>
    <div class="click-to-expand">+</div>
  </div>
</div>
<div class="expand hidden">asd</div>

<br>

<div>
  <div>
    <div class="click-to-expand">+</div>
  </div>
</div>
<div class="expand hidden">asd</div>

<br>

<div>
  <div>
    <div class="click-to-expand">+</div>
  </div>
</div>
<div class="expand hidden">asd</div>

最佳答案

你可以试试这个


var expandArray = document.querySelectorAll('.expand');
var buttonArray = document.querySelectorAll('.click-to-expand');

document.querySelectorAll('.click-to-expand').forEach(function(i) {
  i.addEventListener('click', function(e) {
    const clickedBtnIndex = [...buttonArray].indexOf(e.target);
    expandArray[clickedBtnIndex].classList.toggle("hidden");
  })
});

逻辑是找出被单击的按钮的索引,并使用相同的索引来查找expandArray中应切换“隐藏”的元素。

关于javascript - 如何在单击时在具有相同类名的多个元素上切换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57716364/

相关文章:

javascript - 网站上仅切换一个“显示更多/显示更少”按钮,并具有多个具有相同 ID 的按钮

javascript - 输入字段的 Maxlength 属性不受尊重

CSS 通过 % - 偏移调整大小

javascript - 如何切换这个元素?

html - Bootstrap 恼人的 float

css - 比例中心一个 div 保持缩放选项

javascript - 在 jQuery/JS 切换时定义 "display"css 属性

javascript - 渲染 react 组件预览

javascript - 如何在 script.aculo.us 中禁用 Draggables

javascript - AngularJS - 如何在数组长度为零时显示警报并隐藏默认行为?