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 相关文章推荐
面向对象的javascript(笔记)
Oct 06 Javascript
js继承的实现代码
Aug 05 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 Javascript
浅谈JavaScript对象与继承
Jul 10 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
JS仿Base.js实现的继承示例
Apr 07 Javascript
Vue.use源码分析
Apr 22 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
Nov 23 Javascript
javascript实现图片轮播代码
Jul 09 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里的JS打印函数
2006/10/09 PHP
php 生成WML页面方法详解
2009/08/09 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
php while循环得到循环次数
2013/10/26 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
python Opencv将图片转为字符画
2021/02/19 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
医护人员英文求职信范文
2013/11/26 职场文书
创先争优承诺书范文
2014/03/31 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
小学庆六一活动总结
2014/08/28 职场文书
阿甘正传观后感
2015/06/01 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python
mybatis 获取更新记录的id
2022/05/20 Java/Android