jquery - Add class if parent element contains class -


i want add class when clicking on element. however, if parent of class has class in it, should remove class first. not seem work. add new classes, doesn't remove existing ones.

$(".btn").click(function() {     var par = $(this).parent('div').attr("class");     if(par.has(".active")){         $(this).addclass("active");     } else {         $(this).removeclass("active");         $(this).addclass("active");     } }); 

my html structure

<div class="container">    <a class="btn">button</a>    <a class="btn">button</a> </div> <div class="container">    <a class="btn">button</a>    <a class="btn">button</a> </div> <div class="container">    <a class="btn">button</a>    <a class="btn">button</a> </div> 

every container can contain 1 active class, 3 in total in case.

try this:

$(function() {     $('a.btn').on('click', function() {         var self = this;         var parent = $(self).parent();          parent.find('.active').removeclass('active');         $(self).addclass('active');     }); }); 

here fiddle: http://jsbin.com/aluyom/1/edit.

edit:

there no need use if statement. line parent.find('.active').removeclass('active'); remove class if found.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -