当前位置:首页 > 日记 > 正文

基于javascript实现的自动提示搜索功能

基于javascript实现的自动提示搜索功能
当数据量不大,并且没有与后端对应的功能接口时,一些简单的搜索功能基本上是通过前端实现的,这只是最近才使用的。

设计素描 uff1a
功能描述:

按下键盘后,输入词条中的汉字、拼音字母和汉字的数量。

实现这个想法:

先把汉字输入拼音,然后把汉字、拼音串、数字拼接规则转化成数组,然后每次按键盘后判断输入的值是汉字、拼音或数字,然后按照固定的规则去一个圆形数组,这样你就可以找到相应的词条;

使模式:

外部搜索测试

输入输入/搜索值输入框

我搜索的结果显示了搜索值列表

我搜索条目

新的search_engine(搜索测试内

注意:搜索条目加上两个临时数据,数据名和数据电话,用于存储汉字和数字。

描述:拼音转换使用一个插件,叫jquery.hz2py-min.js,因为这个插件只能转换价值的输入,所以代码中存在一个以上的步骤,首先把价值在一个临时的输入,然后将它转换。

HTML:

复制代码代码如下所示:

一百三十九亿一千四百一十五万七千八百九十五

战士
一百五十一亿一千二百三十五万七千八百九十六

部长
一百三十七亿三千二百四十五万九千九百八十

小偷
一百八十亿一千五百九十四万二千三百六十五

德鲁伊
一百五十三亿一千二百四十八万五千六百九十八

和尚
一百三十八亿一千五百九十六万三千二百五十八

死灵法师
一百三十八亿一千五百九十三万四千二百五十八

圣骑士
CSS:

复制代码代码如下所示:

*填充:0;边距:0;}

列表样式:无;}

体{字体大小:12px;颜色:# 333;}

。搜索测试内{ margin: 100px汽车;padding: 10px;宽度:400px;背景:# e0e0e0;边界半径:10px;}

瓦尔内{ margin-bottom:。搜索:20px;padding: 10px;背景:# FFF;}

。member-list-inner.search-li { padding: 10px;}

。搜索值列表顶部10px;} {保证金:

。搜索值列表里{填充:5px;}

member-list-inner.search-li.phone,

搜索值列表李。电话{浮标:正确;}

。搜索值{宽度:100%;高度:30px;线高度:30px;}

提示{字体重量:粗体;}
JS:

复制代码代码如下所示:

/ / ---------------------------------------------------初始化{ }

功能search_engine(DOM,searchinput,searchresultinner,searchlist){

一个存储数组/拼音+数字+汉字数组

this.searchmemberarray = { };

对象

this.dom = $(,+ DOM);

搜索框

this.searchinput = ,+ searchinput;

搜索结果框

this.searchresultinner = this.dom.find(,+ searchresultinner);

搜索对象列表

this.searchlist = this.dom.find(,+ searchlist);

/转换拼音并存储在数组中

this.transformpinyin();

绑定搜索事件

This.searchActiveEvent();

}

search_engine.prototype = { {

/ / ----------------------------- {成拼音,拼音和汉字和数字存储在数组}

transformpinyin:函数(){

//数据对象的临时存储

$();

var =美元美元(输入拼音,拼音盒);

对于(var i = 0;i < this.searchlist.length;i++){

存储名称,转换为拼音

pinyin.val美元(this.searchlist.eq(我)。Attr(数据));

将汉字转换成拼音

拼音= $ pinyin.topinyin()ToLowerCase(),更换( / / g,);

中文字符

无功cncharacter = this.searchlist.eq(我)。Attr(数据);

数字

VAR数字= this.searchlist.eq(我)。Attr(数据电话);

在数组中

This.searchMemberArray.push(拼音+++ cncharacter ++数字);

}

删除数据对象的临时存储

pinyin.remove美元();

},

{关键词} / / -----------------------------模糊搜索

fuzzysearch:功能(类型,Val){

VaR的;

无功returnarray = { };

拼音

如果(类型=拼音){

s=0;

}

中文字符

如果(类型= cncharacter){

s=1;

}

数字

否则如果(类型=数字){

s=2;

}

对于(var i = 0;i < this.searchmemberarray.length;i++){

包含字符

如果(这。searchmemberarray {我}。分裂({ }。指数)(Val)> = 0){

ReturnArray.push(这个。searchmemberarray {我});

}

}

返回returnarray;

},

{结果} / / -----------------------------输出

postmemberlist:功能(temparray){

html =;

有搜索结果

如果(temparray.length > 0){

HTML + = '的搜索结果(+ temparray.length +);

对于(var i = 0;i < temparray.length;i++){

VaR成像计算机= temparray {我}。分裂();

html;

HTML + = + +成像计算机{ 2 };

HTML + = + +成像计算机{ 1 };

html;

}

}

没有搜索结果

别的{

如果($(这个。searchinput)瓦迩()!){

没有搜索结果…;

其他{ }

This.searchResultInner.html();

}

}

This.searchResultInner.html(HTML);

},

/ / ----------------------------- {事件}搜索

searchactiveevent:函数(){

无功搜索引擎=这;

$(document),(KeyUp

查找临时存储阵列

无功temparray = { };

var = $(this)。瓦迩();

普通法官/拼音

无功pinyinrule = / ^ { a-za-z } + $ /;

规则的法官/汉字

无功cncharacterrule = new RegExp(^ { u4e00 - u9fff } + $

规则整数判断

无功digitalrule = / ^ { - }(D + D +)/;

仅搜索3例

拼音

如果(pinyinrule.test(Val)){

temparray = searchengine.fuzzysearch(拼音

}

中文字符

如果(cncharacterrule.test(Val)){

temparray = searchengine.fuzzysearch(cncharacter

}

数字

如果(digitalrule.test(Val)){

temparray = searchengine.fuzzysearch(数字化

}

别的{

searchengine.searchresultinner.html(没有搜索结果…);

}

searchengine.postmemberlist(temparray);

});

}

};
效果不是很好,合作伙伴可以美化使用他们自己的项目。

相关文章

javascript核心读具有意义的类型、值和变

javascript核心读具有意义的类型、值和变

类型,变量,核心,意义,电脑软件,计算机程序的操作需要对值(值)进行操作,如数字3.14或文本Hello World。在编程语言中,值的类型可以表示和操作,称为数据类型(类型),和编程语言的最基本特征是主机的多个数据类型。当程序需要保持对未来的使用价值,它指…

白色背景橡皮擦将学习!PS抠图技术。

白色背景橡皮擦将学习!PS抠图技术。

抠图,学习,白色,背景,技术,橡皮擦工具必须熟悉我们,但我们经常使用它,通常只有普通橡皮擦。事实上,它扩展选项,有两个橡皮擦工具,可以帮助我们很多铺垫的帮助。Today Xiaobian介绍PS背景橡皮擦抠图技巧,小的学习教程,非常适合非常实用,推荐,一起学习…

PS图象处理软件容易让风吹海岸线动

PS图象处理软件容易让风吹海岸线动

动画,海岸线,图象,处理软件,电脑软件,本教程介绍给朋友,利用PS图象处理软件让风吹海岸线动画和标志的方法。教程的效果非常好,而且方法非常简单。非常适合初学者。我建议像你这样的朋友一起学习。 本教程介绍给朋友,利用PS图象处理软件让风吹…

精美珠宝人像摄影教程

精美珠宝人像摄影教程

教程,珠宝,人像摄影,精美,电脑软件,本教程是介绍一个朋友PS精致的珠宝人像摄影方法,本教程主要是介绍色彩技术,非常实用,值得学习PS的朋友们学习,推荐和分享学习。 本教程主要是介绍PS首饰人像后期的培训课程,效果非常精美。其主要思想是介绍配…

jQuery检索和显示JSON数据的方法

jQuery检索和显示JSON数据的方法

数据,显示,检索,方法,电脑软件,本文给出了jQuery如何接收JSON数据并显示它的示例,供大家参考: 下面的代码是页面中显示的一部分 复制代码代码如下:功能searchproductlistbyfiltercondition(指数型、排序、filterword){ / / cite_html 无功ci…

javascript匿名函数的使用分析

javascript匿名函数的使用分析

匿名函数,电脑软件,javascript,本文介绍了javascript匿名函数的用法,供大家参考: 1。定义一个函数 在Javascript中,函数可以通过函数声明和函数表达式来定义,如 1。通过函数声明定义一个函数 函数(t1){ } 2。通过函数表达式定义一个函数 函数(){ } 但定义功…

jQuery的ajax的使用是在ASP中使用$

jQuery的ajax的使用是在ASP中使用$

是在,电脑软件,jQuery,ajax,ASP,复制代码代码如下所示: 响应。过期= 1 响应。cachecontrol = 不缓存 %> cmd = checkstr(请求(cmd),2) 如果cmd =loadteacher 响应。字符集=GB2312 集= server.createobject(ADODB。记录集) SQL =选择teacher_id,从…

PHP防止SQL注入方法的详细解决方案

PHP防止SQL注入方法的详细解决方案

解决方案,方法,详细,电脑软件,PHP,对问题的描述: 如果用户输入数据未经处理插入SQL查询语句,那么应用程序可能会遭受SQL注入攻击,如下示例: 复制代码代码如下所示: unsafe_variable美元美元'user_input_post { } =; mysql_query(插入`表`(`柱`…

保持网页和网页的页页和搜索页,在Th

保持网页和网页的页页和搜索页,在Th

搜索,网页,电脑软件,ThinkPHP,本文介绍了保存网页和搜索网页的页面的时候,thinkphp实现查询的方法分享给你供你参考。具体实现的方法如下: 在进行搜索查询时,突然发现在搜索页面时在首页使用的分页代码有一个错误。主页分页代码(部分起始和结…

利用PS图象处理软件来创建一个黑色

利用PS图象处理软件来创建一个黑色

网站,图象,创建一个,处理软件,按钮,本教程学习如何创建一个黑色风格的网站按钮的使用PS图象处理软件的圆角矩形工具和图层样式。 本教程学习如何使用PS图象处理软件的圆角矩形工具和图层样式来创建一个黑色风格的网站按钮,看看效果先。 新…

javascript修改SRC的方法

javascript修改SRC的方法

方法,修改,电脑软件,javascript,SRC,本文阐述了用javascript修改图片SRC的方法,供大家参考,具体的实现方法如下: 复制代码代码如下所示: 使用js更改图片 功能changeimage(){ VaR元= document.getelementbyid('myimage); element.src =图像 / / 053120…

ps30分钟图标快速标记:栩栩如生的匕

ps30分钟图标快速标记:栩栩如生的匕

图标,栩栩如生,匕首,标记,快速,这里是一个ps 30分钟物体图标快速教程,以创建一个现实的匕首。这个教程很好,对ps学习者很有帮助。我建议你喜欢你的朋友一起学习。 ps 30分钟图标快速标记:栩栩如生的匕首 先显示最终效果 画的背景 no.1-1 …