jQuery基于xml格式数据实现模糊查询及分页功能的方法
发布时间 - 2026-01-10 22:05:02 点击率:次本文实例讲述了jQuery基于xml格式数据实现模糊查询及分页功能的方法。分享给大家供大家参考,具体如下:

1、此代码只支持xml 格式数据,根据不同需求修改ajax的success方法就ok了
2、此代码只是针对ajax只需一次请求的情况下
String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"");};//解决ie trim问题
(function($) {
/**
* ===============================================================================================================
* ========== 模糊搜索功能 =================================================================================
* ===============================================================================================================
*
* */
$.xml=function(data){//加载xml
var xmlobj=null;
if(window.ActiveXObject){
var xml;
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
xmlobj=$(xml);
}else{
xmlobj=$(data);
}
return xmlobj;
};
//获取节点
$.getnode=function(key,obj){
var nodevalue=obj.children(key).text();
return nodevalue;
};
$.xmldata=null;
$.jsondata=null;
$.indexdata=null;
$.inputid=null;
$.pagetoolid=null;
$.resultdata=null;
$.pagetotal=1;
$.load=function(url){
$.ajax({
type: "post",
url: url,
dataType: "text",
success:function(data){
$.xmldata=$.xml(data);
var jsonstr='{';
var indexstr="{";
$.xmldata.find("QUERYINFO").find("ROW").each(function(i){
var point=i==0?"":",";
var ZZJGDM=$.getnode("ZZJGDM",$(this));
var JGMC=$.getnode("JGMC",$(this));
var DWLX=$.getnode("DWLX",$(this));
var JGJC=$.getnode("JGJC",$(this));
var JGBH=$.getnode("JGBH",$(this));
var ZCDZ=$.getnode("ZCDZ",$(this));
jsonstr+=point+"'"+JGBH+"':{'ZZJGDM':'"+ZZJGDM+"','JGMC':'"+JGMC+"','JGBH':'"+JGBH+"','JGJC':'"+JGJC+"','ZCDZ':'"+ZCDZ+"','DWLX':'"+DWLX+"'}";
indexstr+=point+"'"+JGMC+"':'"+JGBH+"'";
});
jsonstr+="}";
indexstr+="}";
$.indexdata=eval("("+indexstr+")");
$.jsondata=eval("("+jsonstr+")");
}});
};
$.select=function(obj){//选中结果中的一项时
var id=obj.attr("id");
$("#"+$.inputid).val($.jsondata[id].JGMC);
$("#reg_companysimplename").val($.jsondata[id].JGJC);
$("#reg_companysimplename_form").val($.jsondata[id].JGJC);
$("#reg_companycode").val($.jsondata[id].ZZJGDM==""?"---":$.jsondata[id].ZZJGDM);
$("#reg_companycode_form").val($.jsondata[id].ZZJGDM==""?"---":$.jsondata[id].ZZJGDM);
$("#reg_companytype").val($.jsondata[id].DWLX);
$("#reg_companytype_form").val($.jsondata[id].DWLX);
$("#reg_jgbh").val($.jsondata[id].JGBH);
$("#reg_regaddress").val($.jsondata[id].ZCDZ);
$("#reg_regaddress_form").val($.jsondata[id].ZCDZ);
$("#"+$.inputid).focus();
$("#"+$.inputid).blur();
};
$.fn.search=function(obj){//程序入口
var oldkeyword="";
var id=obj.id;
var url=obj.url;
$.inputid=$(this).attr("id");
if($.xmldata==null){
$.load(url);
}
//========================================键盘事件==========================================
$(this).keyup(function(){
var resultlist=null;
var keywordvalue=$(this).val().trim();
$("#reg_companysimplename").val("");
$("#reg_companycode").val("");
$("#reg_companytype").val("");
if(keywordvalue==""||oldkeyword==keywordvalue){//解决ie 的keyup 事件异常
if(keywordvalue==""){
$("#"+id+" ul").parent().hide();
}
return;
}else{
oldkeyword=keywordvalue;
}
var jsonstr='{';
var rownum=0,pagesize=10,num=0;
$.pagetotal=1;
$.indexsearch($.indexdata,keywordvalue);
resultlist=$.indexsearch($.indexdata,keywordvalue);
var ids="[";
for(var i in resultlist){//给查询结果分页
var point=$.pagetotal==1?"":",";
rownum++;
if(rownum>=pagesize&&rownum%pagesize==0||resultlist.length==rownum){
ids+=","+"'"+resultlist[i]+"']";
jsonstr+=point+"'"+$.pagetotal+"':"+ids;
ids="[";
num=0;
if(rownum%pagesize==0){
$.pagetotal++;
}
}else{
point=num==0?"":",";
ids+=point+"'"+resultlist[i]+"'";
num++;
}
}
jsonstr+="}";
$.resultdata=eval("("+jsonstr+")");
//初始化结果列表
if(rownum==0)return;
var pagenum=1;
$.pageto(pagenum,$.resultdata,$("#"+id+" ul"));
if($.pagetotal>1){
$.pagetool.createpagetool($.pagetotal);
$.pagetool.pageto(pagenum,$.pagetotal);
$("#pagetool span[pagenum='1']").css("backgroundColor",'lightblue');
}else{
$("#pagetool").html("");
}
$("#pagetool .num").click(function(){
pagenum=eval($(this).text());
$("#pagetool span").css("backgroundColor",'white');
$(this).css("backgroundColor",'lightblue');
$.pageto(pagenum,$.resultdata,$("#"+id+" ul"));
});
$("#pagetool .up").click(function(){
pagenum--;
if(pagenum!=0){
$("#pagetool span").css("backgroundColor",'white');
$("#pagetool span[pagenum='"+pagenum+"']").css("backgroundColor",'lightblue');
$.pageto(pagenum,$.resultdata,$("#"+id+" ul"));
$.pagetool.pageto(pagenum);
}else{
pagenum++;
}
});
$("#pagetool .down").click(function(){
pagenum++;
if(pagenum<=$.pagetotal){
$("#pagetool span").css("backgroundColor",'white');
$("#pagetool span[pagenum='"+pagenum+"']").css("backgroundColor",'lightblue');
$.pageto(pagenum,$.resultdata,$("#"+id+" ul"));
$.pagetool.pageto(pagenum);
}else{
pagenum--;
}
});
});
};
//工具栏分页
$.pagetool = {
createpagetool : function(pagetotal) {
var html = "<span class='up'>up</span>";
var pagetoolpagenum=1;
for (var i = 1; i <= pagetotal; i++) {
if(i%5==1&&i>5){
pagetoolpagenum++;
}
html += "<span pagenum='"+i+"' i='" +pagetoolpagenum + "' class='num'>" + i
+ "</span>";
}
html += "<span class='down'>down</span>";
$("#pagetool").html(html);
},
pageto : function(pagenum,pagetotal) {
var pagetoolpagenum=1;
if(pagenum>5){
pagetoolpagenum=Math.ceil(pagenum/5);
}
$("#pagetool span").hide();
$("#pagetool span:first").show();
$("#pagetool span[i='"+pagetoolpagenum+"']").show();
$("#pagetool span:last").show();
}
};
//模糊搜索
$.indexsearch=function(indexdata,keyword){
var resultids=new Array();
for (var key in $.indexdata){
if(key.indexOf(keyword)!=-1)
resultids.push($.indexdata[key]);
}
return resultids;
};
//跳页程序
$.pageto=function(pagenum,data,obj){
var list=data[pagenum];
var html="";
obj.html(html);
obj.parent().show();
$(list).each(function(i){
try{
html+='<li id="'+list[i]+'" >'+$.jsondata[list[i]].JGMC+'</li>';
}catch(e){}
});
obj.html(html);
obj.find("li").bind({//结果集的点击事件
"click":function(){
$.select($(this));
obj.parent().hide();
obj.parent().find("#pagetool").html("");
},
"mouseover":function(){//结果集的鼠标悬浮事件
$(this).parent().find("li").css("backgroundColor","white");
$(this).css("backgroundColor","lightblue");
}
});
};
}(jQuery));
在页面中调用
<div class="item_input fl">
<input id="reg_companyname" autocomplete="off" type="text" class="text" name="DWBM_SV"/>
<div id="resultlist" class="hidden" style="width:300px;margin-top: 1px;display:none;">
<ul></ul>
<div class="pagetool" id="pagetool"></div>
</div>
</div>
<script>
$("#reg_companyname").search({"id":"resultlist","url":"/getcompany.go"});
</script>
运行效果 (不同的效果需要不同的样式)
PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:
在线XML/JSON互相转换工具:
http://tools./code/xmljson
在线格式化XML/在线压缩XML:
http://tools./code/xmlformat
XML在线压缩/格式化工具:
http://tools./code/xml_format_compress
XML代码在线格式化美化工具:
http://tools./code/xmlcodeformat
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery操作xml技巧总结》、《jquery中Ajax用法总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
# jQuery
# xml格式
# 数据
# 模糊查询
# 分页
# jquery zTree异步加载、模糊搜索简单实例分享
# jquery ztree实现模糊搜索功能
# jQuery实现id模糊查询的小例子
# jquery easyui combobox模糊过滤(示例代码)
# jQuery实现select模糊查询(反射机制)
# jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
# jQuery实现模糊查询的方法分析
# jQuery实现模糊搜索功能的方法分析
# 相关内容
# 鼠标
# 只需
# 感兴趣
# 给大家
# 更多关于
# 所述
# 查询结果
# 几款
# 程序设计
# 搜索功能
# 转换工具
# 再为
# 拖拽
# 情况下
# 操作技巧
# 加载
# 选择器
# 讲述了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速查询网址的建站时间与历史轨迹?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Linux网络带宽限制_tc配置实践解析【教程】
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
公司门户网站制作流程,华为官网怎么做?
装修招标网站设计制作流程,装修招标流程?
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
英语简历制作免费网站推荐,如何将简历翻译成英文?
iOS UIView常见属性方法小结
如何快速上传自定义模板至建站之星?
如何在云主机上快速搭建网站?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel storage目录权限问题_Laravel文件写入权限设置
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何实现一对一模型关联?(Eloquent示例)
LinuxCD持续部署教程_自动发布与回滚机制
linux top下的 minerd 木马清除方法
如何在Ubuntu系统下快速搭建WordPress个人网站?
Mybatis 中的insertOrUpdate操作
Laravel如何实现API速率限制?(Rate Limiting教程)
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel怎么上传文件_Laravel图片上传及存储配置
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何批量查询域名的建站时间记录?
,交易猫的商品怎么发布到网站上去?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
再谈Python中的字符串与字符编码(推荐)
如何在七牛云存储上搭建网站并设置自定义域名?
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
浅述节点的创建及常见功能的实现
高防服务器:AI智能防御DDoS攻击与数据安全保障
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
如何解决hover在ie6中的兼容性问题
如何在阿里云购买域名并搭建网站?
香港服务器选型指南:免备案配置与高效建站方案解析
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何在橙子建站中快速调整背景颜色?
Python进程池调度策略_任务分发说明【指导】
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何挑选优质建站一级代理提升网站排名?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
魔方云NAT建站如何实现端口转发?
制作公司内部网站有哪些,内网如何建网站?
上一篇:注册域名后如何快速搭建网站?
下一篇: 图片制作网页,图片怎么做成网页链接?
上一篇:注册域名后如何快速搭建网站?
下一篇: 图片制作网页,图片怎么做成网页链接?

