仿淘宝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 相关文章推荐
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
Apr 01 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
Feb 22 Javascript
实测jquery data()如何存值
Aug 18 Javascript
jquery插件qrcode在线生成二维码
Apr 26 Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 Javascript
基于Vue实现timepicker
Apr 25 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
Angular中sweetalert弹框的基本使用教程
Jul 22 Javascript
element-ui多文件上传的实现示例
Apr 10 Javascript
微信小程序手动添加收货地址省市区联动
May 18 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 Javascript
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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
使用正则替换变量
2007/05/05 Javascript
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
Python如何实现守护进程的方法示例
2017/02/08 Python
pandas重新生成索引的方法
2018/11/06 Python
基于python的Paxos算法实现
2019/07/03 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
如何使用python写截屏小工具
2020/09/29 Python
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
超市中秋节活动方案
2014/02/12 职场文书
租房协议书范文
2014/08/20 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
小学教代会开幕词
2016/03/04 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
php去除数组中为0的元素的实例分析
2021/11/17 PHP
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技