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 相关文章推荐
window.onbeforeunload方法在IE下无法正常工作的解决办法
Jan 23 Javascript
javascript 系统文件夹文件操作及参数介绍
Jan 08 Javascript
简体中文转换繁体中文(实现代码)
Dec 25 Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 Javascript
node.js中的fs.linkSync方法使用说明
Dec 15 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
Sep 24 Javascript
JS正则表达式之非捕获分组用法实例分析
Dec 28 Javascript
JS实现给对象动态添加属性的方法
Jan 05 Javascript
Vue实现点击后文字变色切换方法
Feb 11 Javascript
php结合js实现多条件组合查询
May 28 Javascript
layui select 禁止点击的实现方法
Sep 05 Javascript
解决vant title-active-color与title-inactive-color不生效问题
Nov 03 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中变量及部分适用方法
2008/03/27 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
Firefox div高度自适应
2009/04/28 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
php中and 和 &amp;&amp;出坑指南
2018/07/13 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
浅谈Python数据类型之间的转换
2016/06/08 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python3实现猜数字游戏
2020/12/07 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
密封类可以有虚函数吗
2014/08/11 面试题
护理学中专毕业生求职信
2013/11/11 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
大学生助学金感谢信
2015/01/21 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
自荐信大全
2019/03/21 职场文书
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python