I'm basically trying to cycle through an array
of classes and attach event listeners to each class.
My JS however only attaches an event listener to the last item in the array.
My only guess is that the inner for
loop cannot attach eventListeners until the outer loop has finished.
var buttonClasses = ['apple', 'pear'];
var buttonClassElements = []
for (var i = 0; i < buttonClasses.length; i++) {
var buttonClass = buttonClasses[i];
buttonClassElements[i] = document.getElementsByClassName(buttonClass);
var currentElement = buttonClassElements[i];
// Now cycle through the elements with the current class and add event listeners
for (var j = 0; j < currentElement.length; j++) {
currentElement[j].addEventListener('click', function() {
console.log('Clicked ' + buttonClass);
});
}
}
<div class="apple">The Apple</div>
<div class="pear">The Pear</div>