首頁  >  文章  >  web前端  >  JavaScript實現的搜尋及高亮顯示功能範例

JavaScript實現的搜尋及高亮顯示功能範例

韦小宝
韦小宝原創
2018-01-22 09:56:431902瀏覽

這篇文章主要介紹了JavaScript實現的搜尋及高亮顯示功能,涉及javascript字元遍歷與頁面元素屬性相關操作技巧,對JavaScript感興趣的朋友可以參考下本篇文章

情境: 用來篩選清單中的資料, 由於單一資料很簡短, 沒有用php+mysql去實現篩選功能, 只用javascript進行篩選, 匹配的高亮, 或者將不符合的隱藏掉

效果圖:

#html:

<p class="contracts-header">名称: <input type="text" value="" id="search_contract_name"></p>
<p class="contracts-header">代码: <input type="text" value="" id="search_contract_code" placeholder="不区分大小写"></p>
<p class="contracts-header"><button onclick="search()">查找</button></p>
<p 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>
</p>

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) { //两个输入框都有值
    search_contract_code = search_contract_code.toLowerCase(); //不区分大小写, 全部转换为小写, 下同
    $("input[name=&#39;contract[]&#39;]").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 = &#39;block&#39;;
          } else {
            // this.nextSibling.style.backgroundColor = "";
            this.parentNode.style.display = &#39;none&#39;; //隐藏不匹配的
          }
        }
    );
  } else if(search_contract_name || search_contract_code) { //只有一个输入框有值
    search_contract_name = search_contract_name.length ? search_contract_name : &#39;xxx&#39;; //默认为xxx是因为不可能存在xxx
    search_contract_code = search_contract_code.length ? search_contract_code.toLowerCase() : &#39;xxx&#39;;
    $("input[name=&#39;contract[]&#39;]").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 = &#39;block&#39;;
        } else {
          // this.nextSibling.style.backgroundColor = "";
          this.parentNode.style.display = &#39;none&#39;;
        }
      }
    );
  }
}

以上就是這篇文章的所有內容,希望對大家學習JavaScript提供到一定的幫助! !

相關推薦:

JavaScript建構器模式實例分析

#javascript如何計算物件長度

javascript中的typeof與型別判斷詳解

以上是JavaScript實現的搜尋及高亮顯示功能範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn