仿淘宝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 相关文章推荐
通过event对象的fromElement属性解决热区设置主实体的一个bug
Dec 22 Javascript
两种常用的javascript数组去重方法思路及代码
Mar 26 Javascript
express框架实现基于Websocket建立的简易聊天室
Aug 10 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
Sep 12 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
Feb 08 Javascript
vue中引用阿里字体图标的方法
Feb 10 Javascript
JS求Number类型数组中最大元素方法
Apr 08 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
在vscode里使用.vue代码模板的方法
Apr 28 Javascript
IE8中jQuery.load()加载页面不显示的原因
Nov 15 jQuery
从0到1构建vueSSR项目之node以及vue-cli3的配置
Mar 07 Javascript
bootstrap table实现iview固定列的效果实例代码详解
Sep 30 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
PHP静态新闻列表自动生成代码
2007/06/14 PHP
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
Pandas标记删除重复记录的方法
2018/04/08 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
Python callable内置函数原理解析
2020/03/05 Python
python游戏开发的五个案例分享
2020/03/09 Python
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
八年级语文教学反思
2014/02/11 职场文书
故宫的导游词
2015/01/31 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
浅谈Redis中的RDB快照
2021/06/29 Redis