仿淘宝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 相关文章推荐
JavaScript 学习笔记(十一)
Jan 19 Javascript
javascript加号&quot;+&quot;的二义性说明
Mar 04 Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
jQuery对指定元素中指定字符串进行替换的方法
Mar 17 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
jQuery鼠标悬停内容动画切换效果
Apr 27 jQuery
JavaScrpt的面向对象全面解析
May 09 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
浅谈小程序 setData学问多
Feb 20 Javascript
简单聊聊Vue中的计算属性和属性侦听
Oct 05 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获取后台Job管理的实现代码
2011/06/10 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
python 切片和range()用法说明
2013/03/24 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
玩转python爬虫之URLError异常处理
2016/02/17 Python
python正则表达式之作业计算器
2016/03/18 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
python实现串口自动触发工作的示例
2019/07/02 Python
pytorch 预训练层的使用方法
2019/08/20 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
党员干部承诺书范文
2014/03/25 职场文书
奉献演讲稿范文
2014/05/21 职场文书
政工例会汇报材料
2014/08/26 职场文书
优秀班集体申报材料
2014/12/25 职场文书
水电工岗位职责
2015/02/14 职场文书
庭外和解协议书
2016/03/23 职场文书
求职信如何撰写?
2019/05/22 职场文书