JS实现百度搜索框关键字推荐


Posted in Javascript onFebruary 17, 2020

本文实例为大家分享了JS实现百度搜索框关键字推荐的具体代码,供大家参考,具体内容如下

<!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 = ["我是真滴帅啊", "我是真滴牛批啊啊啊", "中国共产党万岁啊啊啊", "我咋能这么优秀嘞??",
    "中国国民党就不行嘿嘿嘿", "苹果好吃吗", "我滴个龟龟耶", "苹果手机很好用!"];
  my$("txt").onkeyup = function () {
    //每次键盘抬起都判断有没有新创建的div,有则删除所有
    if (my$("dv")) {
      my$("box").removeChild(my$("dv"));
    }
    //获取文本框内容
    var text = this.value;
    //添加一个用来存对应数据的空数组
    var tempArr = [];
    //比对文本是否一致
    for (var i = 0; i < keyWords.length; i++) {
      //
      if (keyWords[i].indexOf(text) == 0) {
        tempArr.push(keyWords[i]);
      }
    }
    //如果文本框为空或者数组五元素,则删除所有div
    if (this.value.length == 0 || tempArr.length == 0) {
      if (my$("dv")) {
        my$("box").removeChild(my$("dv"));
      }//end if
      return;
    }// end if
 
    //遍历临时数组,创建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";
 
    //循环遍历临时数组,在创建的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文件:

/*
* 根据id属性的值,返回对应的标签元素
* */
function my$(id) {
  return document.getElementById(id);
};
 
// 设置任意标签中的文本内容
function setInnerText(element, text) {
  // 判断浏览器是否支持这个属性
  if (typeof element.textContent == "undefined") {//不支持
    element.innerText = text;
  } else {//支持
    element.textContent = text;
  }
};
 
// 获取任意标签中的文本内容
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;
  }
}
 
//为任意元素绑定任意的事件。(元素,事件类型,处理函数)
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;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Display SQL Server Version Information
Jun 21 Javascript
jquery异步跨域访问代码
Jun 28 Javascript
js浏览器本地存储store.js介绍及应用
May 13 Javascript
js精准的倒计时函数分享
Jun 29 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
js实现放大镜特效
May 18 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
React.Js添加与删除onScroll事件的方法详解
Nov 03 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
微信小程序和百度的语音识别接口详解
May 06 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
js实现百度淘宝搜索功能
Feb 17 #Javascript
JavaScript使用canvas绘制随机验证码
Feb 17 #Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 #Javascript
Vue 中使用 typescript的方法详解
Feb 17 #Javascript
vue框架中props的typescript用法详解
Feb 17 #Javascript
JS通用方法触发点击事件代码实例
Feb 17 #Javascript
JS前端广告拦截实现原理解析
Feb 17 #Javascript
You might like
php牛逼的面试题分享
2013/01/18 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP中“=&gt;
2019/03/01 PHP
小议Javascript中的this指针
2010/03/18 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python实现socket端口重定向示例
2014/02/10 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python箱型图处理离群点的例子
2019/12/09 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
巧克力蛋糕店创业计划书
2014/01/14 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
见习报告的格式
2014/11/04 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
小学六一主持词开场白
2015/05/28 职场文书
警示教育片观后感
2015/06/17 职场文书