JS實(shí)現(xiàn)table表格內(nèi)針對(duì)某列內(nèi)容進(jìn)行即時(shí)搜索篩選功能
本文實(shí)例講述了JS實(shí)現(xiàn)table表格內(nèi)針對(duì)某列內(nèi)容進(jìn)行即時(shí)搜索篩選功能。分享給大家供大家參考,具體如下:
往往有些時(shí)候,我們把數(shù)據(jù)從數(shù)據(jù)庫(kù)讀取出來,顯示到table里面,而此時(shí)來了個(gè)新需求,要在一個(gè)搜索框內(nèi)輸入關(guān)鍵字,表格的內(nèi)容進(jìn)行即時(shí)的篩選。
而即時(shí)觸發(fā)進(jìn)行數(shù)據(jù)庫(kù)的查詢,再回調(diào)顯示,就顯得慢,拖累服務(wù)器,降低用戶體驗(yàn)度,這時(shí),要是有個(gè)純js操作,進(jìn)行表格某列的即時(shí)篩選,這樣既能提高搜索速度,也不用占用服務(wù)器資源,用戶自然也滿意。
實(shí)現(xiàn)如下,先看效果圖,
開始狀態(tài):
在輸入框內(nèi)輸入‘e',表格即時(shí)進(jìn)行篩選,篩選表格內(nèi)包含有‘e'的行,沒有‘e'的進(jìn)行隱藏,使用在線HTML/JS/css運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun,測(cè)試運(yùn)行效果如下圖所示:
實(shí)現(xiàn)代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>www.dbjr.com.cn JS搜索篩選table列</title> </head> <script type="text/javascript"> function onSearch(obj){//js函數(shù)開始 setTimeout(function(){//因?yàn)槭羌磿r(shí)查詢,需要用setTimeout進(jìn)行延遲,讓值寫入到input內(nèi),再讀取 var storeId = document.getElementById('store');//獲取table的id標(biāo)識(shí) var rowsLength = storeId.rows.length;//表格總共有多少行 var key = obj.value;//獲取輸入框的值 var searchCol = 0;//要搜索的哪一列,這里是第一列,從0開始數(shù)起 for(var i=1;i<rowsLength;i++){//按表的行數(shù)進(jìn)行循環(huán),本例第一行是標(biāo)題,所以i=1,從第二行開始篩選(從0數(shù)起) var searchText = storeId.rows[i].cells[searchCol].innerHTML;//取得table行,列的值 if(searchText.match(key)){//用match函數(shù)進(jìn)行篩選,如果input的值,即變量 key的值為空,返回的是ture, storeId.rows[i].style.display='';//顯示行操作, }else{ storeId.rows[i].style.display='none';//隱藏行操作 } } },200);//200為延時(shí)時(shí)間 } </script> <body> <div > <input name="key" type="text" id="key" onkeydown="onSearch(this)" value="" /></div> <table width="200" border="1" id="store"><!-- id與函數(shù)的getId一致 --> <tr bgcolor="#CCCCCC"> <td>name</td> <td> </td> <td> </td> </tr> <td>good</td> <td> </td> <td> </td> </tr> <tr> <td>better</td> <td> </td> <td> </td> </tr> <tr> <td>best</td> <td> </td> <td> </td> </tr> <tr> <td>bad</td> <td> </td> <td> </td> </tr> <tr> <td>worse</td> <td> </td> <td> </td> </tr> <tr> <td>worst</td> <td> </td> <td> </td> </tr> </table> </body> </html>
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript表格(table)操作技巧大全》、《JavaScript操作DOM技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- jquery遍歷篩選數(shù)組的幾種方法和遍歷解析json對(duì)象
- 基于JavaScript實(shí)現(xiàn)前端數(shù)據(jù)多條件篩選功能
- Angularjs實(shí)現(xiàn)帶查找篩選功能的select下拉框示例代碼
- vuejs通過filterBy、orderBy實(shí)現(xiàn)搜索篩選、降序排序數(shù)據(jù)
- Vue.js實(shí)現(xiàn)多條件篩選、搜索、排序及分頁的表格功能
- JS實(shí)現(xiàn)商品篩選功能
- js實(shí)現(xiàn)表格篩選功能
- Jquery遍歷篩選數(shù)組的幾種方法和遍歷解析json對(duì)象,Map()方法詳解以及數(shù)組中查詢某值是否存在
- angularjs 實(shí)現(xiàn)帶查找篩選功能的select下拉框?qū)嵗?/a>
- js實(shí)現(xiàn)篩選功能
相關(guān)文章
ES6新特性之?dāng)?shù)組、Math和擴(kuò)展操作符用法示例
這篇文章主要介紹了ES6新特性之?dāng)?shù)組、Math和擴(kuò)展操作符用法,結(jié)合實(shí)例形式分析了ES6中數(shù)組、Math和擴(kuò)展操作符的新特性、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-04-04在window.setTimeout方法中傳送對(duì)象
setTimeout方法是js中的延時(shí)方法,很多js的bug,只需要使用該方法延時(shí)一下,就會(huì)自動(dòng)解決了,簡(jiǎn)直就是萬能藥方,也是我比較喜歡使用的最后手段。2006-12-12在JavaScript中獲取請(qǐng)求的URL參數(shù)
在ASP.NET后臺(tái)代碼中,對(duì)于這樣的URL請(qǐng)求地址:http://www.abc.com?id=001,我們可以通過Request.QueryString["id"]的方法很容易的獲取到URL中請(qǐng)求的參數(shù)的值,但是要在前臺(tái)js代碼中獲取請(qǐng)求的參數(shù)的值,應(yīng)該怎么做呢?2010-12-12JavaScript面向?qū)ο缶幊绦∮螒?--貪吃蛇代碼實(shí)例
這篇文章主要介紹了JavaScript貪吃蛇的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05