$(document).ready(function() { $('#option1 ,#option2, #option3').change(function() { $('#option1').parent().removeClass('btn-success').addClass("btn-default") $('#option2').parent().removeClass('btn-warning').addClass("btn-default") $('#option3').parent().removeClass(' btn-danger').addClass("btn-default"); if($(this).attr('id') == 'option1') $(this).parent().removeClass("btn-default").addClass("btn-success"); else if($(this).attr('id') == 'option2') $(this).parent().removeClass("btn-default").addClass("btn-warning"); else $(this).parent().removeClass("btn-default").addClass("btn-danger"); }); });
Remove all applicable classes as soon as this is done, find out which button was clicked, and apply these CSS options. As for why CSS doesn't change, you didn't target the labels where the btn- "insert bootstrap button" button was applied here by calling parent (), you go up to the level that CSS controlled.
Also, generalize the deletion:
$(document).ready(function() { $('#option1 ,#option2, #option3').change(function() { removeAll() }); $('#option1').change(function() { $(this).parent().removeClass("btn-default").addClass("btn-success"); }); $('#option2').change(function() { $(this).parent().removeClass("btn-default").addClass("btn-warning"); }); $('#option3').change(function() { $(this).parent().removeClass("btn-default").addClass("btn-danger"); }); }); function removeAll() { $('#option1').parent().removeClass('btn-success').addClass("btn-default"); $('#option2').parent().removeClass('btn-warning').addClass("btn-default"); $('#option3').parent().removeClass(' btn-danger').addClass("btn-default"); };
Jordan lowe
source share