Bagaimana menyaring elemen
- Previous Page Filter Table
- Next Page Filter Dropdown Menu
Belajar bagaimana menyaring elemen DIV berdasarkan nama kelas.
Saring elemen DIV
BMW
Jeruk
Volvo
Merah
Ford
Biru
Kucing
Anjing
Melon
Kiwi
Banana
Lemon
Sapi
BYD
Buat elemen DIV yang dapat disaring
Langkah pertama - Tambahkan HTML:
<!-- Tombol kontrol --> <div id="myBtnContainer"> <button class="btn active" onclick="filterSelection('all')"> Tampilkan semua</button> <button class="btn" onclick="filterSelection('cars')"> Mobil</button> <button class="btn" onclick="filterSelection('animals')"> Hewan</button> <button class="btn" onclick="filterSelection('fruits')"> Buah</button> <button class="btn" onclick="filterSelection('colors')"> Warna</button> </div> <!-- Bisa disaring elemen. Perhatikan, beberapa memiliki banyak nama kelas (jika mereka termasuk dalam beberapa kategori, dapat digunakan nama kelas ini) --> <div class="container"> <div class="filterDiv cars">BMW</div> <div class="filterDiv colors fruits">Jeruk</div> <div class="filterDiv cars">Volvo</div> <div class="filterDiv colors">Merah</div> <div class="filterDiv cars">Ford</div> <div class="filterDiv colors">Biru</div> <div class="filterDiv animals">Kucing</div> <div class="filterDiv animals">Anjing</div> <div class="filterDiv fruits">Melon</div> <div class="filterDiv fruits animals">Kiwi</div> <div class="filterDiv fruits">Pisang</div> <div class="filterDiv fruits">Lemon</div> <div class="filterDiv animals">Sapi</div> </div>
Tahap kedua - Tambahkan CSS:
.container { Keterbatasan: tak ada; } .filterDiv { Gelugur: kiri; Latar belakang warna: #2196F3; Warna: #ffffff; Lebar: 100px; Garis tinggi: 100px; Teks-tengah: tengah; Margin: 2px; Tampilan: tak ada; /* Default disembunyikan */ } /* Tambahkan kelas "show" ke elemen yang disaring */ .show { Tampilan: blok; } /* Atur gaya tombol */ .btn { Garis: tak ada; Tolak: tak ada; Penggaris: 12px 16px; Latar belakang warna: #f1f1f1; Kursor: pointer; } /* Tambahkan latar belakang putih terang saat tetikus bergerak */ .btn:hover { Latar belakang warna: #ddd; } /* Tambahkan latar belakang abu-abu ke tombol yang aktif */ .btn.active { Latar belakang warna: #666; Warna: putih; }
Tahap ketiga - Tambahkan JavaScript:
filterSelection("all") function filterSelection(c) { var x, i; x = document.getElementsByClassName("filterDiv"); if (c == "all") c = ""; // Tambahkan kelas "show" (display:block) ke elemen yang disaring dan hapus kelas "show" dari elemen yang belum dipilih for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show"); } } // Tampilkan elemen yang disaring 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]; } } } // Sembunyikan elemen yang belum dipilih 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(" "); } // Menambahkan kelas aktif (menyediakan tampilan yang berwarna) ke tombol kontrol saat ini 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"; }); }
- Previous Page Filter Table
- Next Page Filter Dropdown Menu