# jquery_search_suggest_plugin
**Repository Path**: lzw/jquery_search_suggest_plugin
## Basic Information
- **Project Name**: jquery_search_suggest_plugin
- **Description**: jQuery 搜索建议插件
- **Primary Language**: JavaScript
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2014-03-24
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
jquery_search_suggest_plugin
============================
jQuery 搜索建议插件
插件使用方法
============================
安装使用步骤
----------------------------
### 1. 在页面引入 jQuery.j 及本插件脚本
### 2. 在页面定义插件初始化数据
例如页面包含如下输入框:
百度搜索建议:
淘宝搜索建议:
自定义list风格:
自定义默认风格:
使用示例代码参考:
----------------------------
### 自定义默认风格:
$("#default").searchSuggest({
//url: '', //*优先从url ajax 请求 json 帮助数据/
json:{
'data':[
{'id':'0','word':'bytes=','description':'根据服务器发给客户端访问数据量搜索;单位为 byte
例如,搜索数据量大概在 20-50K 之间的日志:
bytes=[20000,50000]'}, {'id':'1','word':'contenttype=','description':'根据内容类型进行搜索
contenttype=image/jpeg'}, {'id':'2','word':'cookie=','description':'根据客户端 Cookie 进行搜索
cookie=user'}, {'id':'3','word':'domain=','description':'根据域名搜索
domain=chinacache.com提示:切割自请求 URL'}, {'id':'4','word':'elapsed=','description':'请求耗时
elapsed==1'}, {'id':'5','word':'fccode=','description':'根据状态码进行搜索
fccode=TCP_REFRESH_HIT/304'}, {'id':'6','word':'ip=','description':'根据客户端 IP 搜索
ip={127.0.0.1,192.168}'},
{'id':'7','word':'method=','description':'根据客户端请求方式搜索method=GET'}, {'id':'8','word':'param=','description':'通过 URL 中传的参数进行搜索
method=POST
method={GET,POST}
param=username'}, {'id':'9','word':'peerinfo=','description':'根据回源信息进行搜索
peerinfo=DIRECT/1.202.150.137回源信息字段包括下面的 Peercode 和 Peerhost'}, {'id':'10','word':'peercode=','description':'通过回源代码进行搜索
peercode=DIRECT注意:此为切割自 Peerinfo 字段'}, {'id':'11','word':'peerhost=','description':'根据回源主机进行搜索
peerhost=1.202.150.137注意:此为切割自 Peerinfo 字段'}, {'id':'12','word':'referer=','description':'根据来路域名搜索
referer=baidu.com'}, {'id':'13','word':'result=','description':'根据请求结果搜索
result=TCP_MEM_HIT提示:为切割自 FC Code 字段'}, {'id':'14','word':'scheme=','description':'根据协议搜索
scheme=http提示:切割自请求 URL'}, {'id':'15','word':'status=','description':'根据状态码进行搜索
status=404提示:为切割自 FC Code 字段'}, {'id':'16','word':'ua=','description':'根据浏览器客户端的 User Agent 信息进行搜索
ua=chrome'}, {'id':'17','word':'uri=','description':'根据请求的 URI 搜索
uri=login'}, {'id':'18','word':'url=','description':'根据请求的 URL 搜索
url=chinacache.com提示:包括以下的Scheme、Domain、URI 及 Parameter'}, {'id':'19','word':'username=','description':'按照客户端用户名搜索
username=-提示:该字段一般为 - '} ], 'defaults':'日志搜索步骤
chinacache.com' + '2. 集合的写法:
foo={a,b,c}
foo!={a,b,c}' +
'3. 区间的写法:foo=[x,y]' + '4. 精确匹配的写法:
foo=(x,y)
foo=[x,] foo=[,y]
foo==a' + '5. 多条件的搜索:
foo=a bar=b' + '
foo=[x,y] bar={a,b} far!=c
@CNC-BJ'},
{'id':'1','word':'~','description':'根据应用名称搜索~FSCS'},
{'id':'2','word':'#','description':'根据频道名称搜索#chinacache.com'},
{'id':'3','word':'/','description':'根据 MRTG 标注搜索/apple'},
{'id':'4','word':'','description':'智能匹配,无需前缀标识apple @CHN-BJ'}
],
'defaults':'设备搜索帮助提示'
},//*/
width:350, /*提示框的宽度,缺省为输入框的宽度相同*/
topoffset: 6, /*提示框与输入框的距离,缺省为5*/
style: 'list',
cssFile: 'css/search-suggest.css'
});
### 百度搜索建议:(line 风格)
$("#baidu_line").searchSuggest({
url: 'http://unionsug.baidu.com/su?p=3&t='+ (new Date()).getTime() +'&wd=', /*优先从url ajax 请求 json 帮助数据,注意最后一个参数为关键字请求参数*/
jsonp: 'cb',/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
json:{
'data':[
{'id':'0','word':'baidu','description':''},
{'id':'1','word':'lzw.me','description':''},
{'id':'2','word':'w1.lzw.me','description':''},
{'id':'3','word':'g.lzw.me','description':''},
{'id':'4','word':'seo.lzw.me','description':''}
],
'defaults':'http://lzw.me'
},
width:300, /*提示框的宽度,缺省为输入框的宽度相同*/
topoffset: 6, /*提示框与输入框的距离,缺省为5*/
style: 'line',
cssFile: 'css/search-suggest.css',
processData: function(json){// url 获取数据时,对数据的处理,作为 getData 的回调函数
if(!json || json.s.length == 0) return false;
console.log(json);
var jsonStr = "{'data':[";
for (var i = json.s.length - 1; i >= 0; i--) {
jsonStr += "{'id':'" + i
+ "','word':'"+ json.s[i]
+ "', 'description': ''},";
}
jsonStr += "],'defaults':'baidu'}";
//字符串转化为 js 对象
return json = (new Function("return "+jsonStr ))();
},
getData: function(word, parent, callback) {//数据获取方法
if(!word) return;
$.ajax({
type: 'GET',
/*data: "word=" + word,*/
url: 'http://unionsug.baidu.com/su?p=3&t='+ (new Date()).getTime() +'&wd=' + encodeURIComponent(word) + '&cb=?',
//'http://suggest.taobao.com/sug?code=utf-8&extras=1&q='+word+'&callback=?'
dataType: 'json',
timeout: 3000,
success: function(data) {
callback(parent, data);
},
error: function(data){callback(parent, data);}
});
}
});
### 淘宝搜索建议:(list 风格)
$("#taobao_list").searchSuggest({
url: 'http://suggest.taobao.com/sug?code=utf-8&extras=1&q=', /*优先从url ajax 请求 json 帮助数据,注意最后一个参数为关键字请求参数*/
jsonp: 'callback',/*如果从 url 获取数据,并且需要跨域,则该参数必须设置*/
json:{
'data':[
{'id':'0','word':'baidu','description':''},
{'id':'1','word':'lzw.me','description':''},
{'id':'2','word':'w1.lzw.me','description':''},
{'id':'3','word':'g.lzw.me','description':''},
{'id':'4','word':'seo.lzw.me','description':''}
],
'defaults':'http://lzw.me'
},//
width:350, //提示框的宽度,缺省为输入框的宽度相同
topoffset: 6, //提示框与输入框的距离,缺省为5
style: 'list',
cssFile: 'css/search-suggest.css',
tpl: '