JS實現(xiàn)百度搜索框關(guān)鍵字推薦
更新時間:2020年02月17日 16:51:21 作者:箏非
這篇文章主要為大家詳細介紹了JS實現(xiàn)百度搜索框關(guān)鍵字推薦,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JS實現(xiàn)百度搜索框關(guān)鍵字推薦的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #box { width: 450px; margin: 200px auto; } #txt { width: 350px; } #pop { width: 350px; border: 1px solid red; } #pop ul { margin: 10px; padding: 0px; width: 200px; list-style-type: none; } #pop ul li { } </style> </head> <body> <div id="box"> <input type="text" id="txt" value=""> <input type="button" value="搜索" id="btn"> </div> <script src="common.js"></script> <script> var keyWords = ["我是真滴帥啊", "我是真滴牛批啊啊啊", "中國共產(chǎn)黨萬歲啊啊啊", "我咋能這么優(yōu)秀嘞??", "中國國民黨就不行嘿嘿嘿", "蘋果好吃嗎", "我滴個龜龜耶", "蘋果手機很好用!"]; my$("txt").onkeyup = function () { //每次鍵盤抬起都判斷有沒有新創(chuàng)建的div,有則刪除所有 if (my$("dv")) { my$("box").removeChild(my$("dv")); } //獲取文本框內(nèi)容 var text = this.value; //添加一個用來存對應數(shù)據(jù)的空數(shù)組 var tempArr = []; //比對文本是否一致 for (var i = 0; i < keyWords.length; i++) { // if (keyWords[i].indexOf(text) == 0) { tempArr.push(keyWords[i]); } } //如果文本框為空或者數(shù)組五元素,則刪除所有div if (this.value.length == 0 || tempArr.length == 0) { if (my$("dv")) { my$("box").removeChild(my$("dv")); }//end if return; }// end if //遍歷臨時數(shù)組,創(chuàng)建div var dvObj = document.createElement("div"); my$("box").appendChild(dvObj); dvObj.id = "dv"; dvObj.style.width = "350px"; // dvObj.style.height = "100px"; //自然撐開,不用給高 dvObj.style.border = "1px solid red"; //循環(huán)遍歷臨時數(shù)組,在創(chuàng)建的div中添加p標簽 for (var i = 0; i < tempArr.length; i++) { var pObj = document.createElement("p"); dvObj.appendChild(pObj); setInnerText(pObj, tempArr[i]); pObj.style.fontSize = "14px"; pObj.style.margin = "0"; pObj.style.padding = "0"; pObj.style.cursor = "pointer"; pObj.style.marginTop = "5px"; pObj.style.marginLeft = "5px"; pObj.onmouseover = function () { this.style.backgroundColor = "pink"; }; pObj.onmouseout = function () { this.style.backgroundColor = ""; }; } } </script> </body> </html>
外部引入工具JS文件:
/* * 根據(jù)id屬性的值,返回對應的標簽元素 * */ function my$(id) { return document.getElementById(id); }; // 設(shè)置任意標簽中的文本內(nèi)容 function setInnerText(element, text) { // 判斷瀏覽器是否支持這個屬性 if (typeof element.textContent == "undefined") {//不支持 element.innerText = text; } else {//支持 element.textContent = text; } }; // 獲取任意標簽中的文本內(nèi)容 function getInnerText(element) { if (typeof element.textContent == "undefined") { return element.innerText; } else { return element.textContent; } }; //獲取任意一個父級元素的第一個子級元素 function getFirstElementChild(element) { if (element.firstElementChild) {//IE8支持 return element.firstElementChild; } else {//IE8不支持 var node = element.firstChild; while (node && node.nodeType != 1) {//不是標簽 node = node.nextSibling; } return node; } } //獲取任意一個父級元素的最后一個子級元素 function getLastElementChild(element) { if (element.lastElementChild) { return element.lastElementChild; } else { var node = element.lastChild; while (node && node.nodeType != 1) { node.previousSibling; } return node; } } //為任意元素綁定任意的事件。(元素,事件類型,處理函數(shù)) function addEventListener(element, type, fn) { //判斷瀏覽器是否支持這個方法 if (element.addEventListener) { element.addEventListener(type, fn, false) } else if (element.attachEvent) { element.attachEvent("on" + type, fn) } else { element["on" + type] = fn; } } //為任意元素解綁事件 function removeEventListener(element, type, fnName) { if (element.removeEventListener) { element.removeEventListener(type, fnName, false); } else if (element.detachEvent) { element.detachEvent("on" + type, fnName); } else { element["on" + type] = null; } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js 根據(jù)對象數(shù)組中的屬性進行排序?qū)崿F(xiàn)代碼
這篇文章主要介紹了js 根據(jù)對象數(shù)組中的屬性進行排序?qū)崿F(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09深入理解JavaScript繼承的多種方式和優(yōu)缺點
這篇文章主要介紹了深入理解JavaScript繼承的多種方式和優(yōu)缺點,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05淺談js-FCC算法Friendly Date Ranges(詳解)
下面小編就為大家?guī)硪黄獪\談js-FCC算法Friendly Date Ranges(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04深入理解javascript函數(shù)參數(shù)與閉包
函數(shù)是javascript的一等對象,想要學好javascript,就必須深刻理解函數(shù)。本文對javascript函數(shù)參數(shù)與閉包進行詳細分析介紹。需要的朋友一起來看下吧2016-12-12淺析Virtual DOM的概念與其在現(xiàn)代前端框架中的實踐
這篇文章將深入探討Virtual DOM(虛擬DOM)的概念,分析其對前端開發(fā)的革新影響,并以此展示前端技術(shù)的深度和魅力,感興趣的小伙伴可以跟隨小編一起學習一下2023-12-12