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 动态修改样式和层叠样式表代码
Apr 27 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
使用jquery+CSS实现控制打印样式
Dec 31 Javascript
详解JavaScript中的异常处理方法
Jun 16 Javascript
学习JavaScript设计模式之责任链模式
Jan 18 Javascript
简单实现bootstrap导航效果
Feb 07 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 jQuery
浅谈Vue内置component组件的应用场景
Mar 27 Javascript
解决layUI的页面显示不全的问题
Sep 20 Javascript
vue实现分页加载效果
Dec 24 Javascript
javascript实现滚动条效果
Mar 24 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 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脚本加密专家php解密算法
2020/09/13 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
python使用matplotlib绘制柱状图教程
2017/02/08 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
基于python实现删除指定文件类型
2020/07/21 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
自我评价范文点评
2013/12/04 职场文书
餐饮加盟计划书
2014/01/10 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
2015年司机工作总结
2015/04/23 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
mysql数据库入门第一步之创建表
2021/05/14 MySQL
用JS写一个发布订阅模式
2021/11/07 Javascript
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
pandas中关于apply+lambda的应用
2022/02/28 Python
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android