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

JS實(shí)現(xiàn)搜索關(guān)鍵詞的智能提示功能

 更新時(shí)間:2017年07月07日 15:29:23   作者:Gary_P  
最近在百度搜索的時(shí)候,當(dāng)你輸入一個(gè)字或者詞的時(shí)候,他會(huì)給你們彈出一個(gè)下拉框出來(lái),里面是和你相關(guān)的搜索提示,效果非常人性化,基于js怎么實(shí)現(xiàn)搜索關(guān)鍵詞智能提示功能,下面小編通過(guò)實(shí)例代碼給大家介紹下,需要的的朋友參考下吧

最近在百度搜索的時(shí)候,當(dāng)你輸入一個(gè)字或者詞的時(shí)候,他會(huì)給你們彈出一個(gè)下拉框出來(lái),里面是和你相關(guān)的搜索提示

比如 我輸入楊字,他會(huì)給我提示以下搜索提示

我嘗試著用JavaScript做了一個(gè)類似的練習(xí),以下是我用VS2013寫的代碼,有不對(duì)的地方,請(qǐng)不吝賜教。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
onload = function () {
function handle() {
var keyWords = { 
"楊忠科": ["楊忠科的視頻", "楊忠科的微博", "楊忠科的郵箱"],
"楊": ["楊利偉", "楊振宇", "楊過(guò)"],
"楊忠": ["楊忠科", "楊忠學(xué)", "楊忠愛(ài)國(guó)"],
"楊忠科愛(ài)":["楊忠科愛(ài)祖國(guó)","楊忠科愛(ài)首都","楊忠科愛(ài)學(xué)習(xí)"]
};
if (keyWords[this.value]) {
//判斷body中是否有這個(gè)層,如果有就刪掉了
if (document.getElementById('dv')) {
document.body.removeChild(document.getElementById('dv'));
}
//開(kāi)始創(chuàng)建層
var dvObj = document.createElement('div');
dvObj.id = 'dv';
dvObj.style.width = '300px';
//dvObj.style.height = '200px'; //將來(lái)可以不要
dvObj.style.border = '1px solid red';
document.body.appendChild(dvObj);
//脫離文檔流
dvObj.style.position = 'absolute';
dvObj.style.left = this.offsetLeft + 'px';
dvObj.style.top = this.offsetHeight + this.offsetTop + 'px';
//循環(huán)創(chuàng)建
for (var i = 0; i < keyWords[this.value].length; i++) {
//創(chuàng)建一個(gè)可以存文本的標(biāo)簽
var pObj = document.createElement('p');
pObj.innerText = keyWords[this.value][i];
//p標(biāo)簽要有小手,還有高亮顯示
pObj.style.cursor = 'pointer';
pObj.style.margin = '5px';
pObj.onmouseover = function () {
this.style.backgroundColor = 'red';
};
pObj.onmouseout = function () {
this.style.backgroundColor = '';
}
dvObj.appendChild(pObj); //把p標(biāo)簽加到層中
}
//創(chuàng)建可以顯示文件的標(biāo)簽
}
}
//firefox下檢測(cè)狀態(tài)改變只能用oninput,且需要用addEventListener來(lái)注冊(cè)事件。 
if (/msie/i.test(navigator.userAgent)) //ie瀏覽器 
{
document.getElementById('txt').onpropertychange = handle
}
else {//非ie瀏覽器,比如Firefox 
document.getElementById('txt').addEventListener("input", handle, false);
}
}; 
</script>
</head>
<body>
<span id="msg"></span>
請(qǐng)輸入搜索關(guān)鍵字<input type="text" name="name" value="" style="width:300px;height:30px;font-size:25px; border:1px solid green" id="txt"/>百度一下
</body>
</html>

效果展示:

關(guān)于這個(gè)練習(xí)我有以下幾點(diǎn)思索

1.因?yàn)樗阉鳠嵩~提前被設(shè)定好,放在鍵值對(duì)里面,所以搜索的范圍也就被限定了,這個(gè)可以再被加深,和數(shù)據(jù)庫(kù)中的數(shù)據(jù)連接起來(lái),搜索的的關(guān)鍵詞直接從數(shù)據(jù)庫(kù)中查詢,這個(gè)具體怎么寫我還沒(méi)研究透,希望有經(jīng)驗(yàn)的前輩可以指教。

2.關(guān)于這個(gè)代碼的應(yīng)用我覺(jué)得可以應(yīng)用在用戶查詢搜索上,百度搜索就是一個(gè)很好的實(shí)例

3.代碼畢竟是JS寫的,如果用戶的電腦將JS控件阻止了,效果也就不行了。

以上所述是小編給大家介紹的JS實(shí)現(xiàn)搜索關(guān)鍵詞的智能提示功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 離開(kāi)當(dāng)前頁(yè)面前使用js判斷條件提示是否要離開(kāi)頁(yè)面

    離開(kāi)當(dāng)前頁(yè)面前使用js判斷條件提示是否要離開(kāi)頁(yè)面

    這篇文章主要介紹了離開(kāi)當(dāng)前頁(yè)面前如何使用js判斷條件提示是否要離開(kāi)頁(yè)面,需要的朋友可以參考下
    2014-05-05
  • Javascript this 的一些學(xué)習(xí)總結(jié)

    Javascript this 的一些學(xué)習(xí)總結(jié)

    相信有C++、C#或Java等編程經(jīng)驗(yàn)的各位,對(duì)于this關(guān)鍵字再熟悉不過(guò)了。由于Javascript是一種面向?qū)ο蟮木幊陶Z(yǔ)言,它和C++、C#或Java一樣都包含this關(guān)鍵字,接下來(lái)我們將向大家介紹Javascript中的this關(guān)鍵字
    2012-08-08
  • JavaScript實(shí)現(xiàn)的數(shù)字與字符串轉(zhuǎn)換功能示例

    JavaScript實(shí)現(xiàn)的數(shù)字與字符串轉(zhuǎn)換功能示例

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的數(shù)字與字符串轉(zhuǎn)換功能,涉及javascript數(shù)字、字符串等運(yùn)算與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • JavaScript基于遍歷操作實(shí)現(xiàn)對(duì)象深拷貝功能示例

    JavaScript基于遍歷操作實(shí)現(xiàn)對(duì)象深拷貝功能示例

    這篇文章主要介紹了JavaScript基于遍歷操作實(shí)現(xiàn)對(duì)象深拷貝功能,涉及javascript元素遍歷與屬性操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-03-03
  • Javascript中數(shù)組去重與拍平的方法示例

    Javascript中數(shù)組去重與拍平的方法示例

    這篇文章主要介紹了Javascript中數(shù)組去重與拍平的相關(guān)資料,因?yàn)檫@是實(shí)際業(yè)務(wù)開(kāi)發(fā)中經(jīng)常遇到的,文中開(kāi)始先進(jìn)行了數(shù)組的判斷介紹,因?yàn)樵谔幚頂?shù)組之前判斷數(shù)據(jù)是不是數(shù)組很重要,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-02-02
  • JS判斷字符串是否全為空的兩種方式

    JS判斷字符串是否全為空的兩種方式

    當(dāng)我們需要判斷用戶輸入的是否全是空格,或用戶在不輸入內(nèi)容的情況下使用回車發(fā)送,此時(shí)我們?nèi)绻枨髢?nèi)容不能為空,常規(guī)判斷無(wú)法識(shí)別,空格本身也有l(wèi)ength,這個(gè)時(shí)候就可使用到下列兩種方式
    2023-10-10
  • JavaScript求解最長(zhǎng)回文子串的方法分享

    JavaScript求解最長(zhǎng)回文子串的方法分享

    這篇文章主要為大家介紹了JavaScript求解最長(zhǎng)回文子串的幾種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • js console.log打印對(duì)象時(shí)屬性缺失的解決方法

    js console.log打印對(duì)象時(shí)屬性缺失的解決方法

    在編寫代碼時(shí),我們常常用 console.log() 的方式將信息在控制臺(tái)中打印出來(lái)以幫助我們進(jìn)行前端調(diào)試,那么console.log打印對(duì)象時(shí)屬性缺失怎么辦?下面我們就一起來(lái)了解一下解決方法
    2019-05-05
  • 小程序獲取用戶信息的兩種方法詳解(getUserProfile和頭像昵稱填寫)

    小程序獲取用戶信息的兩種方法詳解(getUserProfile和頭像昵稱填寫)

    小程序獲取用戶信息這部分其實(shí)不難,但是,他有點(diǎn)麻煩,下面這篇文章主要給大家介紹了關(guān)于小程序獲取用戶信息的兩種方法,主要使用的是getUserProfile和頭像昵稱填寫這兩種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 在WordPress中加入Google搜索功能的簡(jiǎn)單步驟講解

    在WordPress中加入Google搜索功能的簡(jiǎn)單步驟講解

    這篇文章主要介紹了在WordPress中加入Google搜索的簡(jiǎn)單步驟講解,谷歌搜索很有用,但同時(shí)也要注意在國(guó)內(nèi)使用cse的連通性,需要的朋友可以參考下
    2016-01-01

最新評(píng)論