重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
script type="text/javascript"
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的岗巴网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
$("#input").on("input",function(){
var text = $.trim($('#input').val());
if(text){
$("#table li").hide();
$("#table li:contains('" + text + "')").show();
}else{
$('#table li').show();
}
});
/script
本文实例讲述了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处理页面弹出层查询数据等待操作实例
[img]流程顺序为: 页面发送一个请求----- 相关的action ------ 返回一个json格式的结果 ------ 根据结果进行显示。 简写下代码: 假如 QueryAction为处理查询的action,而页面通过一个ID为btn的按钮作为触发请求的部件。 它的代码类似下面这样
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里头是否带搜索参数了
将input和查询框外面加一层div,给div相对定位position:relative;然后让查询框相对于div定位position:absolute;位置自己调一下。联想框固定五个的话需要一个固定显示五个的高度,然后加上overflow-y:auto;超出的部分会出现滚动条