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

user interface - Python attempting to create a simple gui, getting "AttributeError: 'MainMenu' object has no attribute 'intro_screen'" -

jquery - Common JavaScript snippet to share files on Google Drive, Dropbox, Box.net or SkyDrive -

Android Gson.fromJson error -