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 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
javascript 拖放效果实现代码
Jan 22 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
JavaScript中的6种运算符总结
Oct 16 Javascript
jQuery实现简单滚动动画效果
Apr 07 Javascript
薪资那么高的Web前端必看书单
Oct 13 Javascript
js实现左右两侧浮动广告
Jul 09 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
Aug 14 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
vue中多路由表头吸顶实现的几种布局方式
Apr 12 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 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 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
jQuery实现定位滚动条位置
2016/08/05 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
python网络编程实例简析
2014/09/26 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python抓取百度查询结果的方法
2015/07/08 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
深入了解Python 变量作用域
2020/07/24 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
路政管理专业推荐信
2013/11/11 职场文书
最美家庭活动方案
2014/08/31 职场文书
电信营业员岗位职责
2015/04/14 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
vue如何清除浏览器历史栈
2022/05/25 Vue.js