仿淘宝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 相关文章推荐
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
Aug 18 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
Aug 10 Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
Webpack中publicPath路径问题详解
May 03 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 Javascript
如何通过JS实现转码与解码
Feb 21 Javascript
linux服务器快速卸载安装node环境(简单上手)
Feb 22 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
php文档更新介绍
2011/07/22 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
PHP经典面试题集锦
2015/03/19 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
jquery map方法使用示例
2014/04/23 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
用python找出那些被“标记”的照片
2017/04/20 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
python和opencv实现抠图
2018/07/18 Python
Python字典对象实现原理详解
2019/07/01 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
公积金单位接收函
2014/01/11 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
购房意向书
2014/04/01 职场文书
研发工程师岗位职责
2014/04/28 职场文书
五好家庭事迹材料
2014/12/20 职场文书
高中生毕业评语
2014/12/30 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
先进个人自荐书
2015/03/06 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书