Result
よくあるページ内インクリメンタル検索です。
jQueryを使うコードしか書いてなかったのでVanillaのコードを改めて備忘録として。
JavaScript
let cards = document.querySelectorAll('.box') function liveSearch() { let search_query = document.getElementById("searchbox").value; //すべてのコンテンツが表示されている場合は innerText を使用。 //隠し要素を含む場合はtextContentを使用。 for (var i = 0; i < cards.length; i++) { if(cards[i].textContent.toLowerCase() .includes(search_query.toLowerCase())) { cards[i].classList.remove("is-hidden"); } else { cards[i].classList.add("is-hidden"); } } } //少しだけ遅延 let typingTimer; let typeInterval = 500; let searchInput = document.getElementById('searchbox'); searchInput.addEventListener('keyup', () => { clearTimeout(typingTimer); typingTimer = setTimeout(liveSearch, typeInterval); });
html
<div> <label for="searchbox" class="is-size-5">検索</label> <input class='input mb-5' type="search" id="searchbox" placeholder="キーワードを入力"> </div> <div class="box"> <strong>東京</strong> <p>東京は、江戸幕府の所在地の江戸を1868年9月に改称したものである。 「東京」という名称を用いる構想は江戸時代後期の佐藤信淵の書にあり、大久保利通がその書の影響を受けつつ「東京」とすることを建言した。 1869年2月11日1878年(明治11年)に府制を施行[1]、「東京府」となった。</p> </div> ・ ・ ・