JS中的Select框實現(xiàn)模糊搜索功能
您可以使用JavaScript來實現(xiàn)模糊搜索的功能,以下是一個簡單的示例代碼:
HTML部分:
<select id="select"> <option value="1">Apple</option> <option value="2">Banana</option> <option value="3">Cherry</option> <option value="4">Orange</option> </select>
JavaScript部分:
document.getElementById('select').addEventListener('input', function() { var input, filter, option, i; input = this.value; filter = input.toUpperCase(); options = this.getElementsByTagName('option'); for (i = 0; i < options.length; i++) { if (options[i].innerHTML.toUpperCase().indexOf(filter) > -1) { options[i].style.display = ''; } else { options[i].style.display = 'none'; } } });
以上代碼會監(jiān)聽select框的input事件,當用戶輸入內容時,會根據用戶輸入的內容來過濾選項。只有當某個選項的內容包含了用戶輸入的內容時,該選項才會顯示出來,否則會被隱藏。這樣就實現(xiàn)了模糊搜索的功能。
擴展:js實現(xiàn)模糊查詢
今天為大家分享的是使用js實現(xiàn)模糊查詢:
首先寫出html
<div class="search"> <input type="text" class="inp"> <div class="but">搜索</div> </div> <div class="list"></div>
再寫css
* { padding: 0; margin: 0; } .search { width: 96%; margin-left: 2%; height: 60px; display: flex; align-items: center; justify-content: center; } .search input { width: 60%; height: 20px; border: 1px #eeeeee solid; padding: 5px; border-top-left-radius: 20px; border-bottom-left-radius: 20px; } .search div { width: 20%; height: 32px; text-align: center; line-height: 32px; background-color: #eeeeee; border-top-right-radius: 20px; border-bottom-right-radius: 20px; } .list { width: 96%; margin-left: 2%; } .list div { width: 100%; height: 40px; display: flex; justify-content: space-around; } .list span { display: block; width: 20%; line-height: 40px; text-align: center; }
現(xiàn)在結構樣式都有的就該寫數(shù)據了
let arr = [{ name: "吳小糖", addres: "河南", base: 410725, num: 9999 }, { name: "吳三", addres: "浙江", base: 102419, num: 10000 }, { name: "吳磊", addres: "北京", base: 314345, num: 5555 }, { name: "吳謹言", addres: "湖南", base: 341026, num: 7888 }, { name: "吳爽", addres: "河南", base: 410756, num: 6666 }, { name: "吳宣儀", addres: "海南", base: 243187, num: 9999 }]
下一步就該js部分了
let but = document.getElementsByClassName("but")[0]; let inp = document.getElementsByClassName("inp")[0]; sorts(arr); but.onclick = function() { let data = []; for (let i = 0; i < arr.length; i++) { for (let k in arr[i]) { if (String(arr[i][k]).indexOf(inp.value) > -1) { data.push(arr[i]); break; } } } sorts(data); } function sorts(a) { let str = ""; for (let i = 0; i < a.length; i++) { str += `<div> <span>${a[i].name}</span> <span>${a[i].base}</span> <span>${a[i].num}</span> <span>${a[i].addres}</span> </div>` } document.getElementsByClassName("list")[0].innerHTML = str; }
這樣就制作完成了,整體代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title></title> <style> * { padding: 0; margin: 0; } .search { width: 96%; margin-left: 2%; height: 60px; display: flex; align-items: center; justify-content: center; } .search input { width: 60%; height: 20px; border: 1px #eeeeee solid; padding: 5px; border-top-left-radius: 20px; border-bottom-left-radius: 20px; } .search div { width: 20%; height: 32px; text-align: center; line-height: 32px; background-color: #eeeeee; border-top-right-radius: 20px; border-bottom-right-radius: 20px; } .list { width: 96%; margin-left: 2%; } .list div { width: 100%; height: 40px; display: flex; justify-content: space-around; } .list span { display: block; width: 20%; line-height: 40px; text-align: center; } </style> </head> <body> <div class="search"> <input type="text" class="inp"> <div class="but">搜索</div> </div> <div class="list"></div> <script type="text/javascript"> let arr = [{ name: "吳小糖", addres: "河南", base: 410725, num: 9999 }, { name: "吳三", addres: "浙江", base: 102419, num: 10000 }, { name: "吳磊", addres: "北京", base: 314345, num: 5555 }, { name: "吳謹言", addres: "湖南", base: 341026, num: 7888 }, { name: "吳爽", addres: "河南", base: 410756, num: 6666 }, { name: "吳宣儀", addres: "海南", base: 243187, num: 9999 }] let but = document.getElementsByClassName("but")[0]; let inp = document.getElementsByClassName("inp")[0]; sorts(arr); but.onclick = function() { let data = []; for (let i = 0; i < arr.length; i++) { for (let k in arr[i]) { if (String(arr[i][k]).indexOf(inp.value) > -1) { data.push(arr[i]); break; } } } sorts(data); } function sorts(a) { let str = ""; for (let i = 0; i < a.length; i++) { str += `<div> <span>${a[i].name}</span> <span>${a[i].base}</span> <span>${a[i].num}</span> <span>${a[i].addres}</span> </div>` } document.getElementsByClassName("list")[0].innerHTML = str; } </script> </body> </html> </body> </html>
以上就是本章的全部內容,感謝您的閱讀。
到此這篇關于JS實現(xiàn)select框實現(xiàn)模糊搜索功能的文章就介紹到這了,更多相關js模糊搜索內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
js實現(xiàn)數(shù)字從零慢慢增加到指定數(shù)字示例
今天小編就為大家分享一篇js實現(xiàn)數(shù)字從零慢慢增加到指定數(shù)字示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11基于JavaScript實現(xiàn)前端文件的斷點續(xù)傳
這篇文章主要介紹了基于JavaScript實現(xiàn)前端文件的斷點續(xù)傳的相關資料,需要的朋友可以參考下2016-10-10