這次帶給大家table表格內對某列內容進行搜尋篩選步驟詳解,table表格內對某列內容進行搜尋篩選的注意事項有哪些,下面就是實戰案例,一起來看一下。
往往有些時候,我們把資料從資料庫讀取出來,顯示到table裡面,而此時來了個新需求,要在一個搜尋框內輸入關鍵字,表格的內容進行即時的篩選。
而即時觸發進行資料庫的查詢,再回調顯示,就顯得慢,拖累伺服器,降低使用者體驗度,這時,要是有個純js操作,進行表格某列的即時篩選,這樣既能提高搜尋速度,也不用佔用伺服器資源,用戶自然也滿意。
實作如下,先看效果圖,
開始狀態:
#在輸入框內輸入'e',表格即時進行篩選,篩選表格內包含有'e'的行,沒有'e'的進行隱藏,使用在線HTML/JS/css運行工具http://tools.jb51. net/code/HtmlJsRun,測試運行效果如下圖所示:
#實作程式碼:
<!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> JS搜索筛选table列</title> </head> <script type="text/javascript"> function onSearch(obj){//js函数开始 setTimeout(function(){//因为是即时查询,需要用setTimeout进行延迟,让值写入到input内,再读取 var storeId = document.getElementById('store');//获取table的id标识 var rowsLength = storeId.rows.length;//表格总共有多少行 var key = obj.value;//获取输入框的值 var searchCol = 0;//要搜索的哪一列,这里是第一列,从0开始数起 for(var i=1;i<rowsLength;i++){//按表的行数进行循环,本例第一行是标题,所以i=1,从第二行开始筛选(从0数起) var searchText = storeId.rows[i].cells[searchCol].innerHTML;//取得table行,列的值 if(searchText.match(key)){//用match函数进行筛选,如果input的值,即变量 key的值为空,返回的是ture, storeId.rows[i].style.display='';//显示行操作, }else{ storeId.rows[i].style.display='none';//隐藏行操作 } } },200);//200为延时时间 } </script> <body> <p > <input name="key" type="text" id="key" onkeydown="onSearch(this)" value="" /></p> <table width="200" border="1" id="store"><!-- id与函数的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>
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是table表格內對某列內容進行搜尋篩選步驟詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!