Hice un filtro con jQuery y funciona muy bien, también agrego una clase al botón al hacer clic, pero quiero que la clase se elimine al hacer clic en otro botón (actualmente agrega la clase en todas partes).
$(function() { $(".filter-name").click(function() { selectedClass = $(this).attr("data-rel"); $(".filter-content div").not("." + selectedClass).hide(); $(this).toggleClass("active"); setTimeout(function() { $("." + selectedClass).show(); }); }); }); .active { background: red; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <div class="filters"> <button class="filter-name" data-rel="all">All</button> <button class="filter-name" data-rel="a">A</button> <button class="filter-name" data-rel="b">B</button> </div> <div id="content"> <div class="filter-content"> <div class="all a">a</div> <div class="all b">b</div> <div class="all a">a</div> <div class="all a">a</div> <div class="all b">b</div> <div class="all a">a</div> </div> </div>