I have an accordion bootstrap component in one of my designs. I have added a down carot from font awesome and when the accordion expands I want to add a class of "rotate" to that carot so it points up. Then when the accordion collapse, I want the carot to point down again. The code works on the first down carot but not on the rest of them. How can I make it so the class will apply to whichever one the user clicks on?
Here is the HTML
<div class="accordion my-5" id="accordionExample">
<div class="card" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<div class="card-header d-flex" id="headingOne">
<h2 class="mb-0">
<button class="btn" type="button">
question 1
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
<div class="card" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
<div class="card-header d-flex" id="headingTwo">
<h2 class="mb-0">
<button class="btn collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
question 2
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
<div class="card" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
<div class="card-header d-flex" id="headingThree">
<h2 class="mb-0">
<button class="btn collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
question 3
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
<div class="card" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
<div class="card-header d-flex" id="headingFour">
<h2 class="mb-0">
<button class="btn collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
question 4
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseFour" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
</div>
Here is the Javascript:
var carotDown = document.querySelector('.fa-caret-down');
carotDown.addEventListener('click', function(e){
e.target.classList.toggle('rotate');
});