使用onclick函数将类添加到div

时间:2016-02-04 10:58:07

标签: javascript

我试图找到一些方法来解决我的问题,即在点击它们时将类添加到div,但我无法使其正常工作。

var el = document.getElementsByClassName('applications');
var i;
for (i = 0; i < el.length; i++) {
  el[i].addEventListener("click", function() {
    if (el[i]) {
      el[i].className += el[i].className ? ' openDiv' : 'openDiv';
    }
  });
}

我有'for循环',因为我使用getElementsByClassName给出了一个节点列表。我还创建了一个codepen示例:

http://codepen.io/anon/pen/dGqmMy

1 个答案:

答案 0 :(得分:3)

使用classList

,而不是使用复杂的字符串操作
el[i].classList.add('openDiv');

我相信您可能需要为eventListeners添加一个闭包才能工作。

所以这将被视为一种解决方案:

var el = document.getElementsByClassName('applications');
var i;
for (i = 0; i < el.length; i++) {
  (function (i) {
    el[i].addEventListener("click", function() {
      if (el[i]) {
        el[i].classList.add('openDiv');
      }
    });
  })(i);
}