I need to change class on click, in <i> element, which has 2 classes.
The first class is always "fa" and the second class "fa-minus" or "fa-plus".
I need to change this second class from "minus" to "plus" and "plus" to "minus", depending on which class it already has. Would you mind to help me please? It doesn't work at all now
<a href="#!"><div class="menuSlide">Products <i class="fa fa-minus"></i></div></a>
<a href="#!"><div class="menuSlide"> Multimedia <i class="fa fa-plus"></i></div></a><br /><br />
<script>
$(".menuSlide").click(function(){
if($(this).next(".fa").attr("class") == "fa-minus"){
$(this).next(".fa").removeClass("fa-minus");
$(this).next(".fa").addClass("fa-plus");
}
else{
$(this).next(".fa").removeClass("fa-plus");
$(this).next(".fa").addClass("fa-minus");
}
});
</script>
.fa is not sibling but children element of .menuSlide so .next() is not correct. You can use .find() and .hasClass() instead:
$(".menuSlide").click(function() {
if ($(this).find(".fa").hasClass("fa-minus")) {
$(this).find(".fa").removeClass("fa-minus");
$(this).find(".fa").addClass("fa-plus");
} else {
$(this).find(".fa").removeClass("fa-plus");
$(this).find(".fa").addClass("fa-minus");
}
});
.fa-minus:before {
content: "-";
}
.fa-plus:before {
content: "+";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#!">
<div class="menuSlide">Products <i class="fa fa-minus"></i>
</div>
</a>
<a href="#!">
<div class="menuSlide">Multimedia <i class="fa fa-plus"></i>
</div>
</a>
<br />
<br />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With