将input和查询框外面加一层div,给div相对定位position:relative;然后让查询框相对于div定位position:absolute;位置自己调一下。联想框固定五个的话需要一个固定显示五个的高度,然后加上overflow-y:auto;超出的部分会出现滚动条
创新互联公司致力于互联网品牌建设与网络营销,包括成都网站建设、网站设计、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联公司为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联公司核心团队10余年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
本文实例讲述了jQuery实现模糊查询的方法。分享给大家供大家参考,具体如下:
需求:list列表内容很多,用户需要找出列表内容中的某些条目,只有当与用户输入值匹配的条目才显示出来。(后台无分页,直接异步接口返回数据添加形成的内容列表)
虽然可以通过传参再调用查询出来,但这里主要记录的是前端处理进行模糊查询而无需再次调用接口的实现方法。
html部分:
div
class="search-form"
input
type="text"
placeholder="请输入关键词"
span
class="icon-clear"/span
/div
div
class="content"
div
class="title
row
no-gutter"
div
class="col-20"列表一/div
div
class="col-20"列表二/div
div
class="col-20"列表三/div
div
class="col-20"列表四/div
div
class="col-20"列表五/div
/div
div
class="list-content"
ul
li
div
class="code"00001/div
div
class="name"内容1/div
div内容2/div
div内容3/div
div内容4/div
/li
li……/li
/ul
/div
/div
js部分:
queryList:
function(){
$(".search-input").on("input
propertychange",
function()
{
var
queryStr
=
$.trim($(".search-input").val());
if(queryStr
===
''){
$(".list-content
li").show();
}else{
//
以下是匹配某些列的内容,如果是匹配全部列的话就把find()和.parent()去掉即可
$(".list-content
li").hide().find(".code,
.name").filter(":contains('"+queryStr+"')").parent("li").show();
//$(".list-content").refresh();
//重新刷新列表把隐藏的dom结构去掉。
}
});
}
分析:以上即实现了前端js的模糊查询功能啦,哈哈。代码中监听事件中多加了input,据说是为兼容iOS的,具体没测试,有哪位大神测试了可以告知一声哈,谢谢了。
还有个问题就是,以上实现方法,当列表内容多大几千条数目或者更多时,表单输入时会出现卡顿的情况,因为要通过js操作大量的DOM结构啊(隐藏或显示),PC上或许情况还没有那么严重,在手机上测试时那真的是“怎一个卡字了得”,如果哪位大神有更好的法子,还望加以完善!
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery表格(table)操作技巧汇总》、《jQuery切换特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery拖拽特效与技巧总结》、《jquery中Ajax用法总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
您可能感兴趣的文章:jQuery实现select模糊查询(反射机制)jQuery基于xml格式数据实现模糊查询及分页功能的方法jQuery实现id模糊查询的小例子jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例jquery
zTree异步加载、模糊搜索简单实例分享jquery
ztree实现模糊搜索功能jquery
easyui
combobox模糊过滤(示例代码)jQuery实现多级联动下拉列表查询框JQuery+Ajax实现数据查询、排序和分页功能jquery处理页面弹出层查询数据等待操作实例
var url="?${req.queryString}";
if(url.indexOf("pageNumber")==-1){
if(url=="?"){
url+="pageNumber="+num;
}else{
url+="pageNumber="+num;
}
}else{
var url0=url.substring(0,url.indexOf("pageNumber")+11);
var url1=url.substring(url.indexOf("pageNumber")+11,url.length);
if(url1.indexOf("")==-1){
url=url0+num;
}else{
url=url0+num+url1.substring(url1.indexOf(""),url1.length);
}
}
感觉你这里点击页面的时候并没有吧模糊匹配后的值在传到后台进行搜索,返回总的记录数,默认模糊匹配第一页的时候是对的吗?那么在你点击下一页的时候在函数里头alert下是否有搜索参数,或者url里头是否带搜索参数了
你好!
下面的方法虽然麻烦了点,但还是可以实现的····
script
$(document).ready(function(){
$(this).click(function(){
//查找所有含有current的class的对象
var arr = $.find("[class*='current']");
$.each(arr,function(){
//遍历时,将每个对象的class按空格分割为数组
var arrCls = this.className.split(' ');
//通过过滤函数去掉含有current的类,保留其他的class(如果有的话)
this.className = $.grep(arrCls,function(n,i){
return n.indexOf('current')0;
},true);
});
});
});
/script
正则应该用起来更快~~可惜不会····