JavaScript實(shí)現(xiàn)的搜索及高亮顯示功能示例
本文實(shí)例講述了JavaScript實(shí)現(xiàn)的搜索及高亮顯示功能。分享給大家供大家參考,具體如下:
情景: 用來(lái)篩選列表中的數(shù)據(jù), 由于單條數(shù)據(jù)很簡(jiǎn)短, 沒(méi)有用php+mysql去實(shí)現(xiàn)篩選功能, 只用javascript進(jìn)行篩選, 匹配的高亮, 或者將不匹配的隱藏掉
效果圖:
html:
<div class="contracts-header">名稱: <input type="text" value="" id="search_contract_name"></div> <div class="contracts-header">代碼: <input type="text" value="" id="search_contract_code" placeholder="不區(qū)分大小寫(xiě)"></div> <div class="contracts-header"><button onclick="search()">查找</button></div> <div id="contracts-list"> <ul> <li><input type="checkbox" name="contract[]" value="code|name" /><span>name(code)</span></li> <li><input type="checkbox" name="contract[]" value="code|name" /><span>name(code)</span></li> </ul> </div>
javascript:
function search() { var search_contract_name = $("#search_contract_name").val(); var search_contract_code = $("#search_contract_code").val(); if (search_contract_name && search_contract_code) { //兩個(gè)輸入框都有值 search_contract_code = search_contract_code.toLowerCase(); //不區(qū)分大小寫(xiě), 全部轉(zhuǎn)換為小寫(xiě), 下同 $("input[name='contract[]']").each( function () { var code_name = this.value; var search_code = code_name.toLowerCase().indexOf(search_contract_code); var search_name = code_name.toLowerCase().indexOf(search_contract_name); if (search_code >=0 && search_name >=0 ) { // this.nextSibling.style.backgroundColor = "#FFDEAD"; //高亮匹配到的 this.parentNode.style.display = 'block'; } else { // this.nextSibling.style.backgroundColor = ""; this.parentNode.style.display = 'none'; //隱藏不匹配的 } } ); } else if(search_contract_name || search_contract_code) { //只有一個(gè)輸入框有值 search_contract_name = search_contract_name.length ? search_contract_name : 'xxx'; //默認(rèn)為xxx是因?yàn)椴豢赡艽嬖趚xx search_contract_code = search_contract_code.length ? search_contract_code.toLowerCase() : 'xxx'; $("input[name='contract[]']").each( function () { var code_name = this.value; var search_code = code_name.toLowerCase().indexOf(search_contract_code); var search_name = code_name.toLowerCase().indexOf(search_contract_name); if (search_code >=0 || search_name >=0 ) { // this.nextSibling.style.backgroundColor = "#FFDEAD"; this.parentNode.style.display = 'block'; } else { // this.nextSibling.style.backgroundColor = ""; this.parentNode.style.display = 'none'; } } ); } }
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
Net微信網(wǎng)頁(yè)開(kāi)發(fā) 使用微信JS-SDK獲取當(dāng)前地理位置過(guò)程詳解
這篇文章主要介紹了Net微信網(wǎng)頁(yè)開(kāi)發(fā) 使用微信JS-SDK獲取當(dāng)前地理位置過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08js實(shí)現(xiàn)jquery的offset()方法實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)jquery的offset()方法,實(shí)例分析了jquery的offset()方法原理與采用javascript實(shí)現(xiàn)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01詳解如何替換項(xiàng)目中的if-else和switch
這篇文章主要為大家介紹了詳解如何替換項(xiàng)目中的if-else和switch,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11js重寫(xiě)alert事件(避免alert彈框標(biāo)題出現(xiàn)網(wǎng)址)
這篇文章主要給大家介紹了關(guān)于js重寫(xiě)alert事件的相關(guān)資料,這樣可以避免alert彈框標(biāo)題出現(xiàn)網(wǎng)址的情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12JS+Canvas實(shí)現(xiàn)的俄羅斯方塊游戲完整實(shí)例
這篇文章主要介紹了JS+Canvas實(shí)現(xiàn)的俄羅斯方塊游戲,結(jié)合完整實(shí)例形式分析了Canvas技術(shù)實(shí)現(xiàn)俄羅斯方塊游戲的步驟、技術(shù)難點(diǎn)與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12JS實(shí)現(xiàn)深拷貝的幾種簡(jiǎn)單方法示例
深拷貝和淺拷貝是在JavaScript中復(fù)制對(duì)象或數(shù)組時(shí)經(jīng)常遇到的概念,下面這篇文章主要給大家介紹了關(guān)于JS實(shí)現(xiàn)深拷貝的幾種簡(jiǎn)單方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10js實(shí)現(xiàn)翻頁(yè)后保持checkbox選中狀態(tài)的實(shí)現(xiàn)方法
在項(xiàng)目中有需求如下:上下分頁(yè)后,選中的checkbox狀態(tài)保持不變2012-11-11使用JavaScript庫(kù)還是自己寫(xiě)代碼?
有時(shí)候在寫(xiě)JavaScript添加到你的網(wǎng)頁(yè)中的時(shí)候,你將需要決定是使用已有的可用的JavaScript庫(kù)還是自己寫(xiě)所有代碼。其中每個(gè)各有優(yōu)缺點(diǎn),因此沒(méi)有任何一種方式對(duì)每個(gè)人來(lái)說(shuō)都是絕對(duì)正確的選擇。2010-01-01