Use vanilla javascript to add / remove class to a different element after clicking on another one Use vanilla javascript to add / remove class to a different element after clicking on another one javascript javascript

Use vanilla javascript to add / remove class to a different element after clicking on another one


document.addEventListener("DOMContentLoaded", function() {  var faqContainers = document.getElementsByClassName('faq-container');  var faqToggle = document.getElementsByTagName('body')[0];  for (var i = 0; i < faqContainers.length; i++) {    faqContainers[i].addEventListener('click', function() {      if (faqToggle.classList.contains('faq-display')) {        faqToggle.classList.remove('faq-display');        // alert("remove faq display!");      } else {        faqToggle.classList.add('faq-display');        // alert("add faq display!");      }    });  }});


You need to loop:

[...document.querySelectorAll('.faq-container')] // spread is compatible with older EDGE  .forEach(faq => faq.addEventListener('click', () =>   document.querySelector('body').classList.toggle('faq-display')))

NOTE: if you have MANY of these divs, you are better off having one event handler for a parent and test what was clicked.

document.getElementById('faqContainerParent')  .addEventListener('click', e => {  const tgt = e.target;  if (tgt.matches(".faq-container") || tgt.closest("div.faq-container")) { // is it the faq-container or one of the descendants    document.querySelector('body').classList.toggle('faq-display')  }});