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 > ・ ・ ・ |