TheNone TheNone - 3 months ago 27
jQuery Question

toggleClass and remove class from all other elements

How can I toggleClass and remove class from all other elements?
Consider a div that contains a tags:
html:

<div class="size">
<a href="">blahblah</a>
<a href="">blahblah</a>
</div>


jQuery:

$(".size a").click(function(){
$(this).toggleClass('checked');
if($(".size a").hasClass('checked')){
$(this).removeClass('checked');
}
})


I want to add class "cheched" to element and remove the class "ckeched" from other elements that have class "checked" . My code remove all classes. How can I add specific class and remove other element's class with click?
Thanks in advance

Answer

This will do it

 $(".size a").click(function(){
    $('.size a.checked').not(this).removeClass('checked');
    $(this).toggleClass('checked');
 })

Update

Alternatively you could do

 $(".size").on('click','a', function(){
    $(this).toggleClass('checked').siblings().removeClass('checked');
 })
Comments