热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

记一次辛酸的ajax+jquery搜索框制作过程

笔者是一个前端菜鸡,所以想模仿制作一个百度搜索框用到自己的项目,通过找csdn文章B站视频 终于凑出了一个勉强像样的搜索框。html 图书搜索页面 .searc

笔者是一个前端菜鸡,所以想模仿制作一个百度搜索框用到自己的项目,通过找csdn文章B站视频 终于凑出了一个勉强像样的搜索框。

html

<!DOCTYPE html>
<html lang&#61;"en" xmlns&#61;"http://www.w3.org/1999/xhtml" xmlns:th&#61;"http://www.thymeleaf.org">
<head><meta charset&#61;"utf-8"><meta name&#61;"viewport" content&#61;"width&#61;device-width, initial-scale&#61;1, maximum-scale&#61;1"><title>图书搜索页面</title><link rel&#61;"stylesheet" href&#61;"/css/style.css"><script type&#61;"text/Javascript" src&#61;"/js/jquery-3.1.1.min.js"></script><!--搜索图标需要的js--><script src&#61;"/js/fontawesome.js" ></script><style type&#61;"text/css"> .search-box{padding-left: 25%;padding-top: 10px;width:350px ;height: 40px;border-radius: 40px;}.search-txt{height: 40px;border:none;border-radius:5px;background: white;outline: none;float: left;padding: 0;color:black;font-size: 16px;transition: 0.4s;line-height: 40px;width: 280px;}.search-btn{color:#e84118;float: right;width: 40px;height: 40px;border-radius: 50%;background: #2f3640;display: flex;justify-content: center;align-items: center;transition: 0.4s;}.search-box:hover > .search-btn{background: white;}.searchContent{margin-left: 24.94%;width:279px;border:1px solid #2f3640;margin-top: -5px;display: none;background:white;}.searchContent ul{width:279px;background:white;}.searchContent ul li{color:black;width:279px;line-height:30px;background:white;list-style: none;cursor: pointer;border-bottom:1px #B2B2B2;}</style>
</head>
<body> <!--搜索框--><div class&#61;"search-box"><!--输入栏--><input id&#61;"search-txt" class&#61;"search-txt" name&#61;"search-txt" type&#61;"text" placeholder&#61;"请输入书名" /><!--搜索btn--><a id&#61;"search-btn" class&#61;"search-btn" href&#61;"#"><i class&#61;"fas fa-search"></i></a></div><!--下拉内容块--><div class&#61;"searchContent" id&#61;"searchContent"></div>
</body><script type&#61;"text/Javascript">//Javascript代码区域$(function(){//jq类选择器 输入栏对象const searchTxt &#61; $("#search-txt");//下拉内容块对象const searchContent &#61; $("#searchContent");//输入栏btn弹起事件searchTxt.keyup(function () {//获取输入栏内容var keyword &#61;searchTxt.val();//去空白var kw &#61; keyword.trim();//判断内容是否为空if (kw!&#61;&#61;"" && kw!&#61;null){//ajax get请求 路径 关键字 结果$.get(&#39;search/keySearch&#39;,{kw:kw},function(result){if (result &#61;&#61; null || result &#61;&#61;&#61; "") {//打印测试console.log("没数据");//不显示 下拉框&#xff08;默认不显示&#xff09;searchContent.css("display", "none");} else{//遍历结果集console.log("有数据"&#43;result);//创建ul对象var ul &#61; $("

    ");//jq遍历$.each(result, function(index, data) {//每次遍历清空下拉框&#xff0c;否则数据重叠searchContent.html("");//创建li对象var line&#61;$("
  • "
    );//将数据放入liline.append(data);//li点击事件line.click(function () {//测试console.log(this.textContent);//将点击的该li的数据放入输入栏searchTxt.val(this.textContent);//点击后关闭下拉框searchContent.css("display","none");});//ul添加 li集合ul.append(line);});//下拉框添加 ulsearchContent.append(ul).show();}},&#39;json&#39;);}});});//下拉框显示$(function () {//获取输入栏对象const searchTxt &#61; $("#search-txt");//获取下拉框对象const searchContent &#61; $("#searchContent");//当点击输入栏&#xff0c;显示下拉框searchTxt.click(function () {var word &#61;searchTxt.val();var wd &#61; word.trim();if (wd!&#61;&#61;""&&wd!&#61;null){searchContent.show();}});//当鼠标离开下拉框&#xff0c;下拉框消失searchContent.mouseleave(function () {searchContent.css("display","none");});})</script></html>

    java mvc 测试片段

    &#64;ResponseBody&#64;RequestMapping("/search/keySearch")public String keySearch(&#64;RequestParam("kw") String kw){List<String>list &#61; new ArrayList<>();System.out.println(kw);list.add("张三丰");list.add("张无忌");list.add("李清照");list.add("旭旭宝宝");list.add("csdn");list.add("ajax教程");String a &#61; JSON.toJSONString(list);return a;}

    效果展示

    输入内容
    在这里插入图片描述
    鼠标离开
    在这里插入图片描述
    再次点击输入框
    在这里插入图片描述


    推荐阅读
    • Java实战之电影在线观看系统的实现
      本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
    • CSS3选择器的使用方法详解,提高Web开发效率和精准度
      本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
    • 使用HTML创建弹出框以便用户输入信息
      在做项目的过程中,我们时常需要进行一些弹框操作,比如在后台管理时需要进行的一些增删改操作,这个时候我们需要使用到弹框,或者在 ... [详细]
    • 开发笔记:加密&json&StringIO模块&BytesIO模块
      篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
    • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
    • SpringMVC接收请求参数的方式总结
      本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
    • 从零基础到精通的前台学习路线
      随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
    • Python脚本编写创建输出数据库并添加模型和场数据的方法
      本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
    • 关于extjs开发实战pdf的信息
      本文目录一览:1、extjs实用开发指南2、本 ... [详细]
    • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
    • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
      本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
    • 树莓派语音控制的配置方法和步骤
      本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
    • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
    • 嵌入式处理器的架构与内核发展历程
      本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
    • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
    author-avatar
    XbZSZl_682
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有