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

js實現(xiàn)搜索框關(guān)鍵字智能匹配代碼

 更新時間:2020年03月26日 11:34:20   作者:程序員小菜  
這篇文章主要為大家分享了js實現(xiàn)搜索框關(guān)鍵字智能匹配代碼,感興趣的朋友可以參考一下

只要使用搜索引擎的朋友應(yīng)該都有這樣的體會,就是當在搜索框輸入關(guān)鍵字的時候,會出現(xiàn)自能匹配現(xiàn)象,這絕對是非常好的用戶體驗,下面就是一段類似的代碼,當然這里只是掩飾,所以只能匹配的數(shù)據(jù)都是本地固定好的,在實際應(yīng)用中可以才能夠數(shù)據(jù)庫讀取數(shù)據(jù)。

效果圖:

代碼實例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>搜索框關(guān)鍵字智能匹配實例代碼</title>
<style>
body, ul, li 
{
 margin:0;
 padding:0;
}
body 
{
 font-size:12px;
 font-family:sumsun, arial;
 background:#FFFFFF;
}
.gover_search 
{
 position:relative;
 z-index:99;
 height:63px;
 padding:15px 0 0 20px;
 border:1px solid #b8cfe6;
 border-bottom:0;
 background:url(../images/gover_search_bg.gif) repeat-x 0 0;
}
.gover_search_form {height:36px;}
.gover_search .search_t 
{
 float:left;
 width:112px;
 line-height:26px;
 color:#666;
}
.gover_search .input_search_key 
{
 float:left;
 width:462px;
 height:18px;
 padding:3px;
 margin-right:5px;
 border:1px solid #ccc;
 line-height:18px;
 background:#fff;
}
.gover_search .search_btn 
{
 float:left;
 width:68px;
 height:26px;
 overflow:hidden;
 border:1px solid #ccc;
 text-align:center;
 color:#ff3300;
 letter-spacing:5px;
 background:url(../images/gover_search_bg.gif) no-repeat 0 -79px;
 cursor:pointer;
 font-weight:bold;
}
.gover_search .search_suggest 
{
 position:absolute;
 z-index:999;
 left:132px;
 top:41px;
 width:468px;
 border:1px solid #ccc;
 border-top:none;
 display:none;
 color:#004080;
}
.gover_search .search_suggest li 
{
 height:24px;
 overflow:hidden;
 padding-left:3px;
 line-height:24px;
 background:#fff;
 cursor:default;
}
.gover_search .search_suggest li.hover {background:#ddd;}
.num_right 
{
 float:right;
 text-align:right;
 line-height:24px;
 padding-right:10px
}
</style>
</head>
<body>
<div class="gover_search">
 <div class="gover_search_form clearfix"> 
 <span class="search_t">關(guān)鍵詞匹配搜索</span>
 <input type="text" class="input_search_key" id="gover_search_key" placeholder="請輸入關(guān)鍵詞直接搜索" />
 <button type="submit" class="search_btn">搜索</button>
 <div class="search_suggest" id="gov_search_suggest">
 <ul>
 </ul>
 </div>
 </div>
</div>
<script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript"> 
function oSearchSuggest(searchFuc)
{ 
 var input = $('#gover_search_key'); 
 var suggestWrap = $('#gov_search_suggest'); 
 var key = ""; 
 var init = function(){ 
 input.bind('keyup',sendKeyWord); 
 input.bind('blur',function(){setTimeout(hideSuggest,100);}) 
 } 
 var hideSuggest = function(){ 
 suggestWrap.hide(); 
 } 
 //發(fā)送請求,根據(jù)關(guān)鍵字到后臺查詢 
 var sendKeyWord = function(event){ 
 //鍵盤選擇下拉項 
 if(suggestWrap.css('display')=='block'&&event.keyCode == 38||event.keyCode == 40)
 { 
 var current = suggestWrap.find('li.hover'); 
 if(event.keyCode == 38)
 { 
 if(current.length>0)
 { 
  var prevLi = current.removeClass('hover').prev(); 
  if(prevLi.length>0)
  { 
  prevLi.addClass('hover'); 
  input.val(prevLi.html()); 
  } 
 }
 else
 { 
  var last = suggestWrap.find('li:last'); 
  last.addClass('hover'); 
  input.val(last.html()); 
 } 
 }
 else if(event.keyCode == 40)
 { 
 if(current.length>0)
 { 
  var nextLi = current.removeClass('hover').next(); 
  if(nextLi.length>0)
  { 
  nextLi.addClass('hover'); 
  input.val(nextLi.html()); 
  } 
 }
 else
 { 
  var first = suggestWrap.find('li:first'); 
  first.addClass('hover'); 
  input.val(first.html()); 
 } 
 } 
 //輸入字符 
 }
 else
 { 
 var valText = $.trim(input.val()); 
 if(valText ==''||valText==key)
 { 
 return; 
 } 
 searchFuc(valText); 
 key = valText; 
 } 
 } 
 //請求返回后,執(zhí)行數(shù)據(jù)展示 
 this.dataDisplay = function(data){ 
 if(data.length<=0)
 { 
 suggestWrap.hide(); 
 return; 
 } 
 //往搜索框下拉建議顯示欄中添加條目并顯示 
 var li; 
 var tmpFrag = document.createDocumentFragment(); 
 suggestWrap.find('ul').html(''); 
 for(var i=0; i<data.length; i++)
 { 
 li = document.createElement('LI'); 
 li.innerHTML = data[i]; 
 tmpFrag.appendChild(li); 
 } 
 suggestWrap.find('ul').append(tmpFrag); 
 suggestWrap.show(); 
 //為下拉選項綁定鼠標事件 
 suggestWrap.find('li').hover(function(){ 
 suggestWrap.find('li').removeClass('hover'); 
 $(this).addClass('hover'); 
 },function(){ 
 $(this).removeClass('hover'); 
 }).bind('click',function(){ 
 $(this).find("span").remove(); 
 input.val(this.innerHTML); 
 suggestWrap.hide(); 
 }); 
 } 
 init(); 
}; 
//實例化輸入提示的JS,參數(shù)為進行查詢操作時要調(diào)用的函數(shù)名 
var searchSuggest = new oSearchSuggest(sendKeyWordToBack); 
//這是一個模似函數(shù),實現(xiàn)向后臺發(fā)送ajax查詢請求,并返回一個查詢結(jié)果數(shù)據(jù),傳遞給前臺的JS,再由前臺JS來展示數(shù)據(jù)。本函數(shù)由程序員進行修改實現(xiàn)查詢的請求 
//參數(shù)為一個字符串,是搜索輸入框中當前的內(nèi)容 
function sendKeyWordToBack(keyword){ 
 var aData = []; 
 aData.push('<span class="num_right">約100個</span>'+keyword+'返回數(shù)據(jù)1'); 
 aData.push('<span class="num_right">約200個</span>'+keyword+'返回數(shù)據(jù)2'); 
 aData.push('<span class="num_right">約100個</span>'+keyword+'返回數(shù)據(jù)3'); 
 aData.push('<span class="num_right">約50000個</span>'+keyword+'返回數(shù)據(jù)4'); 
 aData.push('<span class="num_right">約1044個</span>'+keyword+'2012是真的'); 
 aData.push('<span class="num_right">約100個</span>'+keyword+'2012是假的'); 
 aData.push('<span class="num_right">約100個</span>'+keyword+'2012是真的'); 
 aData.push('<span class="num_right">約100個</span>'+keyword+'2012是假的'); 
 //將返回的數(shù)據(jù)傳遞給實現(xiàn)搜索輸入框的輸入提示js類 
 searchSuggest.dataDisplay(aData); 
} 
</script>
</body>
</html>

更多關(guān)于搜索功能的文章請查看專題《JavaScript搜索功能匯總

希望本文所述對大家學(xué)習(xí)javascript程序設(shè)計有所幫助。

相關(guān)文章

  • 3分鐘掌握常用的JS操作JSON方法總結(jié)

    3分鐘掌握常用的JS操作JSON方法總結(jié)

    工作中做了幾款自動化測試工具都是跟日志讀取相關(guān),日志格式又大多數(shù)都是JSON,所以這里把常用的JS操作JSON的方法做了總結(jié)
    2017-04-04
  • 微信小程序?qū)崿F(xiàn)星級評價

    微信小程序?qū)崿F(xiàn)星級評價

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)星級評價,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 淺談一種讓小程序支持JSX語法的新思路

    淺談一種讓小程序支持JSX語法的新思路

    這篇文章主要介紹了淺談一種讓小程序支持JSX語法的新思路,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 微信小程序?qū)崿F(xiàn)拍照和相冊選取圖片

    微信小程序?qū)崿F(xiàn)拍照和相冊選取圖片

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)拍照和相冊選取圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • JavaScript實現(xiàn)梯形乘法表的方法

    JavaScript實現(xiàn)梯形乘法表的方法

    這篇文章主要介紹了JavaScript實現(xiàn)梯形乘法表的方法,涉及基本javascript結(jié)合表格操作的技巧,需要的朋友可以參考下
    2015-04-04
  • javascript簡單寫的判斷電話號碼實例

    javascript簡單寫的判斷電話號碼實例

    這篇文章主要介紹了javascript簡單寫的判斷電話號碼實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 基于js實現(xiàn)判斷瀏覽器類型代碼實例

    基于js實現(xiàn)判斷瀏覽器類型代碼實例

    這篇文章主要介紹了基于js實現(xiàn)判斷瀏覽器類型代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • JavaScript將當前時間轉(zhuǎn)換成UTC標準時間的方法

    JavaScript將當前時間轉(zhuǎn)換成UTC標準時間的方法

    這篇文章主要介紹了JavaScript將當前時間轉(zhuǎn)換成UTC標準時間的方法,涉及javascript中Date及toUTCString方法的使用技巧,需要的朋友可以參考下
    2015-04-04
  • 微信小程序?qū)崿F(xiàn)元素漸入漸出動畫效果封裝方法

    微信小程序?qū)崿F(xiàn)元素漸入漸出動畫效果封裝方法

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)元素漸入漸出動畫效果封裝方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 原生Js實現(xiàn)的畫廊功能

    原生Js實現(xiàn)的畫廊功能

    這篇文章主要介紹了原生Js實現(xiàn)的畫廊功能,幫助大家更好的理解和學(xué)習(xí)使用JavaScript,感興趣的朋友可以了解下
    2021-05-05

最新評論