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 相关文章推荐
很多人都是用下面的js刷新站IP和PV
Sep 05 Javascript
js冒泡法和数组转换成字符串示例代码
Aug 14 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
jQuery中ScrollTo用法示例
Sep 04 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 Javascript
使用Angular CLI从蓝本生成代码详解
Mar 24 Javascript
js拖动滑块和点击水波纹效果实例代码
Oct 16 Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
Vue.js数字输入框组件使用方法详解
Oct 19 Javascript
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使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
php和asp语法上的区别总结
2019/05/12 PHP
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python守护进程用法实例分析
2015/06/04 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
python代码中怎么换行
2020/06/17 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
家长会演讲稿范文
2014/01/10 职场文书
入党自我评价优缺点
2014/01/25 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
门前三包责任书
2014/04/15 职场文书
思想作风建设心得体会
2014/10/22 职场文书
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers
Elasticsearch 批量操作
2022/04/19 Python