仿淘宝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 相关文章推荐
动态调用css文件——jquery的应用
Feb 20 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
深入分析js中的constructor和prototype
Apr 07 Javascript
extjs两个tbar问题探讨
Aug 08 Javascript
简单选项卡 js和jquery制作方法分享
Feb 26 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
js选项卡的制作方法
Jan 23 Javascript
Layer弹出层动态获取数据的方法
Aug 20 Javascript
Koa 使用小技巧(小结)
Oct 22 Javascript
js的新生代垃圾回收知识点总结
Aug 22 Javascript
jQuery实现鼠标滑动切换图片
May 27 jQuery
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中常用的预定义变量小结
2012/05/09 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
宾馆总经理岗位职责
2014/02/14 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
用Python实现Newton插值法
2021/04/17 Python
python实现简单的名片管理系统
2021/04/26 Python