javascript - 点击后检查div是否存在,如果存在则将其删除

标签 javascript

我有一个 JavaScript,它创建一种 Accordion 类型,我想在单击时打开 div ,然后在第二次单击时关闭它们。我可以做到这一点,但随后我不知道在哪里插入删除代码 el.classList.remove("openDiv"); 来关闭所有可能打开的选项卡以及唯一应该打开的选项卡open 是点击的那个。

这是 JavaScript 代码:

var el = document.getElementsByClassName('applications');
var i;
var action = 1;

function addHandler(el) {
   el.addEventListener("click", function() {

     if ( action == 1 ) {
       el.classList.add('openDiv');
       action = 2;
     } else {
       el.classList.remove("openDiv");
       action = 1;
     }
   });
}

for (i = 0; i < el.length; i++) {
   addHandler(el[i]);
}

我还创建了一个DEMO

最佳答案

var el = document.getElementsByClassName('applications');
var i;

function addHandler(el) {
  el.addEventListener("click", function() {

     //updated condition for click
     if ( !this.classList.contains('openDiv')) {
        var a = document.getElementsByClassName('openDiv');
        for (var i in a) {
          if (a[i].classList) {
            a[i].classList.remove("openDiv");
          }
        }
        el.classList.add('openDiv');
        action = 2;
    } else {
        el.classList.remove("openDiv");
        action = 1;
    }

  });
}

for (i = 0; i < el.length; i++) {
  addHandler(el[i]);
}

Working demo

关于javascript - 点击后检查div是否存在,如果存在则将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35224646/

相关文章:

javascript - 是否可以访问 React Navigation 的 navigationOptions 中的非静态方法?

javascript - AngularJS。 ng-class 与 $scope 中的变量不同步

javascript - 如何全局更改光标图像

javascript - 完成 Accordion jQuery 功能,我尝试了很多,似乎没有任何效果?

javascript - 如何将 Highcharts 图表嵌入到 jekyll 博客文章中?

javascript - 如何使用适用于 mac yosemite 的 javascript automator (JAX) 获取网页的原始 html?

javascript - 如何使对象在 three.js 场景中仅对一个摄像机可见

JavaScript:测试未定义的抛出 var is not defined error ...?

javascript - 添加元素动态后的JQuery绑定(bind)事件

javascript - 一旦所有延迟完成就调用一个方法?