I am new to JS and i am in an issue, I have added 2 identical sitecore modules on same page which has 2 identical script which toggles the class name.
var accItem = document.getElementsByClassName('accordionItem');
var accHD = document.getElementsByClassName('accordionItemHeading');
for (i = 0; i < accHD.length; i++) {
accHD[i].addEventListener('click', toggleItem, false);
}
function toggleItem() {
var itemClass = this.parentNode.className;
for (i = 0; i < accItem.length; i++) {
accItem[i].className = 'accordionItem close';
}
if (itemClass == 'accordionItem close') {
this.parentNode.className = 'accordionItem open';
}
}
The problem is that only one module click is working because of the identical className. Now how can i use "this" to solve my problem and both modules should work despite of having same classname?
Edit: HTML Code:
<div class="accordionContent">
<div class="accordionItem close" style="display: block;">
<div class="accordionItemHeading">
CONTENT
</div>
</div>
</div>
<div class="accordionContent">
<div class="accordionItem close" style="display: block;">
<div class="accordionItemHeading">
CONTENT
</div>
</div>
</div>