How to filter elements

Learn how to filter DIV elements based on class names.

Filter DIV elements

BMW
Orange
Volvo
Red
Ford
Blue
Cat
Dog
Melon
Kiwi
Banana
Lemon
Cow
BYD

亲自试一试

Create filterable DIV elements

Step 1 - Add HTML:

<!-- Control buttons -->
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')"> Show all</button>
  <button class="btn" onclick="filterSelection('cars')"> Cars</button>
  <button class="btn" onclick="filterSelection('animals')"> Animals</button>
  <button class="btn" onclick="filterSelection('fruits')"> Fruits</button>
  <button class="btn" onclick="filterSelection('colors')"> Colors</button>
</div>
<!-- Filterable elements. Please note that some have multiple class names (if they belong to multiple categories, these class names can be used) -->
<div class="container">
  <div class="filterDiv cars">BMW</div>
  <div class="filterDiv colors fruits">Orange</div>
  <div class="filterDiv cars">Volvo</div>
  <div class="filterDiv colors">Red</div>
  <div class="filterDiv cars">Ford</div>
  <div class="filterDiv colors">Blue</div>
  <div class="filterDiv animals">Cat</div>
  <div class="filterDiv animals">Dog</div>
  <div class="filterDiv fruits">Melon</div>
  <div class="filterDiv fruits animals">Kiwi</div>
  <div class="filterDiv fruits">Banana</div>
  <div class="filterDiv fruits">Lemon</div>
  <div class="filterDiv animals">Cow</div>
</div>

দ্বিতীয় পদক্ষেপ - CSS যোগ করুন:

.container {
  overflow: hidden;
}
.filterDiv {
  float: left;
  background-color: #2196F3;
  color: #ffffff;
  width: 100px;
  line-height: 100px;
  text-align: center;
  margin: 2px;
  display: none; /* ডিফল্টে লুকান */
}
/* ফিল্টার করা উপাদানে "show" শ্রেণী যোগ করুন */
.show {
  display: block;
}
/* বাটনের শৈলী নির্ধারণ করুন */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: #f1f1f1;
  cursor: pointer;
}
/* মাউস ওভারের সময় প্রকাশ্য গোলাপী রঙের পটভূমি যোগ করুন */
.btn:hover {
  background-color: #ddd;
}
/* সক্রিয় বাটনে গভীর রঙের পটভূমি যোগ করুন */
.btn.active {
  background-color: #666;
  color: white;
}

তৃতীয় পদক্ষেপ - JavaScript যোগ করুন:

filterSelection("all")
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("filterDiv");
  if (c == "all") c = "";
  // ফিল্টারিং পরবর্তী ইলেকট্রনকে "show" শ্রেণী (display:block) যোগ করুন এবং অপ্রচলিত ইলেকট্রনকে "show" শ্রেণী সরিয়ে নিন
  for (i = 0; i < x.length; i++) {
    w3RemoveClass(x[i], "show");
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show");
  }
}
// ফিল্টারিং পরবর্তী ইলেকট্রনকে প্রকাশ করুন
function w3AddClass(element, name) {
  var 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];
    }
  }
}
// অপ্রচলিত ইলেকট্রনকে লুকান
function w3RemoveClass(element, name) {
  var 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(" ");
}
// বর্তমান নিয়ন্ত্রণ বাটনকে সক্রিয় শ্রেণী (প্রকাশিত) যোগ করুন
var btnContainer = document.getElementById("myBtnContainer");
var btns = btnContainer.getElementsByClassName("btn");
for (var i = 0; i < btns.length; i++) {
  btns[i].addEventListener("click", function() {
    var current = document.getElementsByClassName("active");
    current[0].className = current[0].className.replace(" active", "");
    this.className += " active";
  });
}

亲自试一试