仿淘宝JSsearch搜索下拉深度用法


Posted in Javascript onJanuary 15, 2018

我们首先给出本次关于JSsearch程序的相关源码:https://gitee.com/skyogo/JSsearch

我们下载JSsearch1.0 Community版本

下载好了之后我们再下载一个类似淘宝的购物页面

然后,我们打开这个页面,会发现是这样的

仿淘宝JSsearch搜索下拉深度用法

此时我们关掉页面,将我们的JSsearch.js拷贝一份到淘宝页面的根目录的js文件夹下面

拷贝完了之后,我们在html页面中引入它(在body最底部写)

<script src="js/JSsearch.js"></script>
<script>
</script>

然后我们在上面的第76行(input标记下面)里写上这段代码

<div id="search-recommend">
 没有搜索结果
</div>

然后我们打开css/index.css文件,在里面写上这段css样式表

#search-recommend{
  height: 40px;
  width: 580px;
  position: absolute;
  top: 110px;
  border: 1px gray solid;
  padding-left: 20px;
  box-sizing: border-box;
  padding-top: 11px;
  font-size: 15px;
  cursor: pointer;
  background: white;
}

运行一下html页面,发现搜索框下面多出了一个框

仿淘宝JSsearch搜索下拉深度用法

至此,我们的html和css代码就写完了,接下来,我们来写js代码

我们现在将页面关闭,打开开发工具,在index.html里面找到大约是2754行的<script>标签,那么我们现在就要在里面写入我们的查询代码

首先,我们写入这段代码:(重复获取输入框里面的值)

var lastValue = document.getElementById("search-in").value;
setInterval(function(){   
},10)

然后,我们在var的下面写入判断语句,判断是否输入框的值改变了

if(lastValue != document.getElementById("search-in").value){          
}

接着,我们在if里面写入:

lastValue = document.getElementById("search-in").value;

这段话,就是说重复判断,如果输入框的值改变了,那么就重新赋值

然后,我们再在下面写入:

if(lastValue==null||lastValue==""){
  document.getElementById("search-recommend").innerHTML = "没有搜索结果";
}else{
}

这段话,就是判断如果输入框现在的值为空,那么就让他显示“没有搜索结果”

接着,我们在else里面写入:

var newItemList = JSsearchByKeyWord(itemList,lastValue);
if(newItemList[0] == undefined){
   document.getElementById("search-recommend").innerHTML = "没有搜索结果";
}else{ 
}

这时,我们就调用了JSsearch的用关键词查找的方法,哦,对了,我们还没写itemList这个数组

这时把光标移到setInterval的上面一行,写上:

var itemList = ["光能表","情侣表","日韩腕表","手表放心淘","瑞士表","陶瓷表","电子表","欧米茄","钢带表","皮带表","镂空机械表","斯沃琪","天梭","运动表","卡西欧","国表","时尚表","女表","儿童表","学生表","浪琴"];

itemList是我们所有的商品合集

现在再把光标移回去,移到else里面,写上:

document.getElementById("search-recommend").innerHTML = newItemList[0];

此时,我们再打开html文件,再输入框里面输入内容,就会发现已经有联想了!

仿淘宝JSsearch搜索下拉深度用法

当然,这还只是个雏形,我们还有一个BUG需要解决,就是当你输入一个多个字符串都含有的字符后,他并不一定推荐你想的那个,这点JSsearch已经帮我们想好了,我在这里就不再写了,如果想解决这个BUG,可以参考JSsearch的说明文档自行解决!

Javascript 相关文章推荐
让firefox支持IE的一些方法的javascript扩展函数代码
Jan 02 Javascript
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
Sep 29 Javascript
购物车选中得到价格实现示例
Jan 26 Javascript
js光标定位文本框回车表单提交问题的解决方法
May 11 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
jQuery实现标签页效果实战(4)
Feb 08 Javascript
javascript实现下雨效果
Mar 27 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
JS实现将二维数组转为json格式字符串操作示例
Jul 12 Javascript
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
vue2.0 父组件给子组件传递数据的方法
Jan 15 #Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 #Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
Jan 15 #Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
Jan 15 #Javascript
js实现一个简单的MVVM框架示例
Jan 15 #Javascript
详解angularjs 学习之 scope作用域
Jan 15 #Javascript
高性能的javascript之加载顺序与执行原理篇
Jan 14 #Javascript
You might like
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
php xml 入门学习资料
2011/01/01 PHP
php生成mysql的数据字典
2016/07/07 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
英国电器零售商:PRC Direct
2018/06/21 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
行政部工作岗位职责范本
2014/03/05 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
导游词开场白
2015/01/31 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server