چگونه عناصر را فیلتر کنیم

یادگیری نحوه فیلتر کردن عناصر بر اساس نام کلاس DIV

فیلتر کردن عناصر DIV

ب ام و
نارنجی
ولوو
قرمز
فورد
آبی
گربه
سگ
هندوانه
کیوی
موز
لیمو
گاو
BYD

آزمایش کنید

ایجاد عناصر DIV قابل فیلتر

قدم اول - اضافه کردن HTML:

<!-- دکمه‌های کنترل -->
<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>
<!-- قابل فیلتر کردن عناصر. توجه داشته باشید که برخی از عناصر چندین نام کلاس دارند (اگر به چندین دسته تعلق دارند می‌توان از این نام‌ها استفاده کرد) -->
<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"> گربه</div>
  <div class="filterDiv animals"> سگ</div>
  <div class="filterDiv fruits"> هندوانه</div>
  <div class="filterDiv fruits animals"> کیوی</div>
  <div class="filterDiv fruits"> موز</div>
  <div class="filterDiv fruits">لیمو</div>
  <div class="filterDiv animals">گاو</div>
</div>

مرحله دوم - افزودن CSS:

.container {
  تداخل: مخفی;
}
.filterDiv {
  شناور: چپ;
  رنگ پس‌زمینه: #2196F3;
  رنگ: #ffffff;
  عرض: 100px;
  تراز عمودی: 100px;
  جلو قرار دادن متن: وسط;
  حاشیه: 2px;
  نمایش: نه; /* به صورت پیش‌فرض مخفی */
}
/* به عناصر فیلتر شده "show" اضافه کردن کلاس */
.show {
  نمایش: block;
}
/* تنظیم سبک دکمه */
.btn {
  کناره: هیچ;
  کشیدن: هیچ;
  حاشیه: 12px 16px;
  رنگ پس‌زمینه: #f1f1f1;
  مؤشک: pointer;
}
/* در حالت ماوس بر روی آن پس‌زمینه روشن‌تر اضافه کردن */
.btn:hover {
  رنگ پس‌زمینه: #ddd;
}
/* به دکمه فعال اضافه کردن پس‌زمینه تیره */
.btn.active {
  رنگ پس‌زمینه: #666;
  رنگ: سفید;
}

مرحلة سوم - افزودن جاوااسکریپت:

filterSelection("all")
فونکشن filterSelection(c) {
  وار x, i;
  x = دکument.getClassByClassName("filterDiv");
  if (c == "all") c = ";";
  // فیلٹر کئے گئے عناصر کو "show" کلاس (دکھائیں) اضافہ کریں، غیر منتخب کئے گئے عناصر سے "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";
  });
}

آزمایش کنید