仿淘宝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 相关文章推荐
用于节点操作的API,颠覆原生操作HTML DOM节点的API
Dec 11 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
Feb 07 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
EasyUI中实现form表单提交的示例分享
Mar 01 Javascript
静态页面html中跳转传值的JS处理技巧
Jun 22 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
Sep 06 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
浅谈js中的bind
Mar 18 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
PHP多维数组排序array详解
2017/11/21 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
javascript新手语法小结
2008/06/15 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
django1.8使用表单上传文件的实现方法
2016/11/04 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
python实现列表的排序方法分享
2019/07/01 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python带参数打包exe及调用方式
2019/12/21 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
如何实现一个自定义类的序列化
2012/05/22 面试题
小学家长评语大全
2014/04/16 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书
任命书怎么写
2015/03/02 职场文书
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL