filterSelection("all") function filterSelection(c) { let x, i; x = document.getElementsByClassName("filter-div"); if (c == "all") c = ""; // Add the "show-items" class (display:block) to the filtered elements, and remove the "show-items" class from the elements that are not selected for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show-items"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show-items"); } } // show-items filtered elements function w3AddClass(element, name) { let i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { if (arr1.indexOf(arr2[i]) == -1) { element.className += " " + arr2[i]; } } } // Hide elements that are not selected function w3RemoveClass(element, name) { let i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { while (arr1.indexOf(arr2[i]) > -1) { arr1.splice(arr1.indexOf(arr2[i]), 1); } } element.className = arr1.join(" "); } // Add active class to the current control button (highlight it) let btnContainer = document.getElementById("myBtnContainer"); let btns = btnContainer.getElementsByClassName("filter-btn"); for (let i = 0; i < btns.length; i++) { btns[i].addEventListener("click", function() { let current = document.getElementsByClassName("active"); current[0].className = current[0].className.replace(" active", ""); this.className += " active"; }); }