欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生JS 實(shí)現(xiàn)的input輸入時(shí)表格過(guò)濾操作示例

 更新時(shí)間:2019年08月03日 10:05:59   作者:sennyla  
這篇文章主要介紹了原生JS 實(shí)現(xiàn)的input輸入時(shí)表格過(guò)濾操作,結(jié)合實(shí)例形式分析了JavaScript基于頁(yè)面元素遍歷、運(yùn)算、判斷實(shí)現(xiàn)的表格過(guò)濾相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了原生JS 實(shí)現(xiàn)的input輸入時(shí)表格過(guò)濾操作。分享給大家供大家參考,具體如下:

需求:對(duì)input框進(jìn)行鍵盤(pán)輸入后根據(jù)輸入的內(nèi)容去匹配表格中指定的數(shù)據(jù)項(xiàng),若存在相匹配的則只顯示匹配的數(shù)據(jù)項(xiàng);

細(xì)節(jié)處理:監(jiān)聽(tīng)鍵盤(pán)輸入后給一定的緩沖時(shí)間避免發(fā)生頻繁的請(qǐng)求;

解決思路:給個(gè)定時(shí)器,當(dāng)鍵盤(pán)開(kāi)始輸入時(shí)啟動(dòng)定時(shí)器,倘若在指定的時(shí)間內(nèi)都不在進(jìn)行輸入操作,則執(zhí)行匹配操作,否則取消操作,同時(shí)限定輸入的字符串大于等于2位數(shù)字時(shí)再進(jìn)行匹配操作,使過(guò)濾效果更精準(zhǔn)一些。

<!--JS -->

var timer = null; //定義定時(shí)器
function filterTable(el){
  clearTimeout(timer);
  var oTable = document.getElementById("oTable");
  //獲取需要匹配的元素集合
  var firstTdArr = oTable.getElementsByClassName("firstTd");
  if(el.value.length>1){ //限定匹配的字符至少為兩位數(shù)
    var filterVal = el.value.toUpperCase();
    timer = setTimeout(function(){
      for(var i=0;i<firstTdArr.length;i++){
        //元素集合中存在匹配值時(shí),顯示匹配的記錄,否則隱藏
        if (firstTdArr[i].innerHTML.toUpperCase().indexOf(filterVal) > -1) {
          firstTdArr[i].parentNode.style.display = "";
        }else{
          firstTdArr[i].parentNode.style.display = "none";
        }
      }
    },500);
  }else{
    //不滿足匹配所需字符數(shù)量時(shí),恢復(fù)匹配之前的模樣
    for(var i=0;i<firstTdArr.length;i++){
      firstTdArr[i].parentNode.style.display = "";
    }
  }
}

<!-- HTML -->

<p><input type="text" οnkeyup="filterTable(this)"/></p>
<table id="oTable">
  <tr>
    <th>匹配數(shù)據(jù)</th>
    <th>數(shù)據(jù)項(xiàng)一</th>
    <th>數(shù)據(jù)項(xiàng)二</th>
    <th>數(shù)據(jù)項(xiàng)三</th>
  </tr>
  <tr>
    <td class="firstTd">JS前端數(shù)據(jù)多條件篩選</td>
    <td>11過(guò)濾table數(shù)據(jù)</td>
    <td>111過(guò)濾table數(shù)據(jù)</td>
    <td>1111過(guò)濾table數(shù)據(jù)</td>
  </tr>
  <tr>
    <td class="firstTd">程序員不會(huì)英語(yǔ)怎么行?</td>
    <td>22過(guò)濾table數(shù)據(jù)</td>
    <td>222過(guò)濾table數(shù)據(jù)</td>
    <td>2222過(guò)濾table數(shù)據(jù)</td>
  </tr>
  <tr>
    <td class="firstTd">前端代碼編譯后添加過(guò)濾</td>
    <td>33過(guò)濾table數(shù)據(jù)</td>
    <td>333過(guò)濾table數(shù)據(jù)</td>
    <td>3333過(guò)濾table數(shù)據(jù)</td>
  </tr>
  <tr>
    <td class="firstTd">大數(shù)據(jù)學(xué)習(xí)</td>
    <td>44過(guò)濾table數(shù)據(jù)</td>
    <td>444過(guò)濾table數(shù)據(jù)</td>
    <td>4444過(guò)濾table數(shù)據(jù)</td>
  </tr>
  <tr>
    <td class="firstTd">JS過(guò)濾HTML標(biāo)簽</td>
    <td>55過(guò)濾table數(shù)據(jù)</td>
    <td>555過(guò)濾table數(shù)據(jù)</td>
    <td>5555過(guò)濾table數(shù)據(jù)</td>
  </tr>
  <tr>
    <td class="firstTd">大數(shù)據(jù)你了解多少</td>
    <td>66過(guò)濾table數(shù)據(jù)</td>
    <td>666過(guò)濾table數(shù)據(jù)</td>
    <td>6666過(guò)濾table數(shù)據(jù)</td>
  </tr>
</table>

<!-- CSS3 -->

table{border: 1px solid #ccc;width: 900px;}
table tr:nth-child(odd){background:#F4F4F4;}
table tr:nth-child(even){background:#fff;}

<!-- 效果 -->

感興趣的朋友可以使用在線HTML/CSS/JavaScript前端代碼調(diào)試運(yùn)行工具http://tools.jb51.net/code/WebCodeRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專(zhuān)題:《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ì)有所幫助。

相關(guān)文章

  • 基于JavaScript canvas繪制貝塞爾曲線

    基于JavaScript canvas繪制貝塞爾曲線

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript canvas繪制貝塞爾曲線的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JavaScript中的16進(jìn)制字符介紹

    JavaScript中的16進(jìn)制字符介紹

    最早接觸到\unnn之類(lèi)的字符是在微軟的官網(wǎng)上。當(dāng)時(shí)在網(wǎng)上找了一下這中字符格式,卻不知道該搜什么
    2011-10-10
  • 用JavaScript實(shí)現(xiàn)一個(gè)代碼簡(jiǎn)潔、邏輯不復(fù)雜的多級(jí)樹(shù)

    用JavaScript實(shí)現(xiàn)一個(gè)代碼簡(jiǎn)潔、邏輯不復(fù)雜的多級(jí)樹(shù)

    這篇文章主要介紹了用JavaScript實(shí)現(xiàn)一個(gè)代碼簡(jiǎn)潔、邏輯不復(fù)雜的多級(jí)樹(shù),需要的朋友可以參考下
    2014-05-05
  • 20個(gè)你不得不知道的js位運(yùn)算用法

    20個(gè)你不得不知道的js位運(yùn)算用法

    位運(yùn)算,那些看似晦澀但又蘊(yùn)含無(wú)限魔力的數(shù)字魔術(shù),在JavaScript開(kāi)發(fā)中扮演了默默無(wú)聞卻又至關(guān)重要的角色,本文介紹多個(gè)js位運(yùn)算的使用場(chǎng)景,闡述在JavaScript中,如何巧妙運(yùn)用位運(yùn)算實(shí)現(xiàn)效率的提升和算法的優(yōu)化,需要的朋友可以參考下
    2023-12-12
  • 微信小程序 騰訊地圖顯示偏差問(wèn)題解決

    微信小程序 騰訊地圖顯示偏差問(wèn)題解決

    這篇文章主要介紹了微信小程序 騰訊地圖顯示偏差問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • js驗(yàn)證密碼強(qiáng)度解析

    js驗(yàn)證密碼強(qiáng)度解析

    這篇文章主要為大家詳細(xì)介紹了js驗(yàn)證密碼強(qiáng)度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • javascript限制用戶只能輸漢字中文的方法

    javascript限制用戶只能輸漢字中文的方法

    這篇文章主要介紹了javascript限制用戶只能輸漢字中文的方法,實(shí)例列舉了利用Unicode判斷與正則判斷兩種方法,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • javacript使用break內(nèi)層跳出外層循環(huán)分析

    javacript使用break內(nèi)層跳出外層循環(huán)分析

    這篇文章主要介紹了javacript使用break內(nèi)層跳出外層循環(huán)的用法,以實(shí)例形式對(duì)比分析了循環(huán)跳出break語(yǔ)句的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 深入學(xué)習(xí)JS?XML和Fetch請(qǐng)求

    深入學(xué)習(xí)JS?XML和Fetch請(qǐng)求

    這篇文章主要介紹了深入學(xué)習(xí)JS?XML和Fetch請(qǐng)求,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 使用requestAnimationFrame實(shí)現(xiàn)js動(dòng)畫(huà)性能好

    使用requestAnimationFrame實(shí)現(xiàn)js動(dòng)畫(huà)性能好

    requestAnimationFrame優(yōu)于setTimeout/setInterval的地方在于它是由瀏覽器專(zhuān)門(mén)為動(dòng)畫(huà)提供的API,在運(yùn)行時(shí)瀏覽器會(huì)自動(dòng)優(yōu)化方法的調(diào)用,并且如果頁(yè)面不是激活狀態(tài)下的話,動(dòng)畫(huà)會(huì)自動(dòng)暫停,有效節(jié)省了CPU開(kāi)銷(xiāo),這篇文章給大家詳細(xì)介紹使用requestAnimationFrame實(shí)現(xiàn)js動(dòng)畫(huà)
    2015-08-08

最新評(píng)論