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
Post a Comment