仿淘宝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 相关文章推荐
extjs DataReader、JsonReader、XmlReader的构造方法
Nov 07 Javascript
在jquery中处理带有命名空间的XML数据
Jun 13 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
微信小程序 canvas API详解及实例代码
Oct 08 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
Jqprint实现页面打印
Jan 06 Javascript
React教程之Props验证的具体用法(Props Validation)
Sep 04 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
vue.js 实现点击按钮动态添加li的方法
Sep 07 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
Oct 12 Javascript
Vue动态组件和异步组件原理详解
May 06 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 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服务器页面间跳转实现方法
2012/08/02 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
php依赖注入知识点详解
2019/09/23 PHP
php判断目录存在的简单方法
2019/09/26 PHP
PHP之header函数详解
2021/03/02 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
js笔试题-接收get请求参数
2019/06/15 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
python进阶教程之异常处理
2014/08/30 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
专营店会计助理岗位职责
2013/11/29 职场文书
植树造林的宣传标语
2014/06/23 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
公司酒会主持词
2015/07/02 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
一级电子管军用接收机测评
2022/04/05 无线电