jquery+json实现的搜索加分页效果

蓝色雅致

蓝色雅致

2016-02-19 13:19

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享jquery+json实现的搜索加分页效果的教程,热爱PS的朋友们快点看过来吧!
1.Web 里面有三个目录:
  1.1 content.htm    //这个文件直接运行就行
  1.2 js          //这里面有用到的几个js 文件,其中 以db 开头的就是数据源(就是json 串)
  1.3 css         //css 就不用说了
2. 直接运行 content.htm 就可以直接打开查看分页和搜索效果了
3. 原理很简单,只是用了javascript 的index 函数
核心代码:

代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
/*
author: liulf
function:
var __db_cpcj=vCpcj;
var __db_cp=vCp;
var vCp={"cppage":[
{"cpdh":"A01000101","page":"1","ca":"1309-36-0","mc":"硫铁矿","ename":"Pyrite","bm":"黄铁矿"},
{"cpdh":"A01000201","page":"1","ca":"1309-36-0","mc":"硫精砂","ename":"Pyrite concentrate;Sulfur concentrate","bm":""},
{"cpdh":"A01000202","page":"1","ca":"1309-36-0","mc":"硫精矿粉","ename":"Powdered pyrite concentrate;Pyrites concentrate,powder;Sulfur concentrate,powder","bm":"硫精矿"},
{"cpdh":"A02000101","page":"1","ca":"","mc":"磷矿石","ename":"Phosphorus ore","bm":""},
{"cpdh":"A02000111","page":"2","ca":"","mc":"磷矿砂","ename":"Phosphorite grit","bm":""},
{"cpdh":"A02000201","page":"2","ca":"","mc":"磷矿粉","ename":"Phosphate rock powder","bm":""},
{"cpdh":"A03000101","page":"2","ca":"12447-04-0","mc":"硼矿石","ename":"Ascharite;Boric ore","bm":"硼镁矿"},
{"cpdh":"A04000101","page":"2","ca":"","mc":"钾长石","ename":"Potash feldspar;Potassium feldspars","bm":""},
{"cpdh":"A04000201","page":"2","ca":"12003-63-3","mc":"长石粉","ename":"Feldspar powder","bm":""},
{"cpdh":"A04000301","page":"2","ca":"","mc":"光卤石","ename":"Carnallite","bm":""}
]}
var vCpcj={"cjpage":[{"cjdh":"110634","cm":"拜耳光翌板材有限责任公司","pagen":"1701"},
{"cjdh":"110052","cm":"北京艾瑞斯水墨有限公司","pagen":"1701"},
{"cjdh":"110408","cm":"北京艾斯克医药技术开发有限公司","pagen":"1701"},
{"cjdh":"110010","cm":"北京爱德泰普膜制品厂","pagen":"1701"},
{"cjdh":"110165","cm":"北京安实创业科技发展有限公司","pagen":"1701"},
{"cjdh":"110134","cm":"北京安顺达装饰材料有限公司","pagen":"1701"},
{"cjdh":"110291","cm":"北京奥博星生物技术责任有限公司","pagen":"1701"},
{"cjdh":"110191","cm":"北京奥得赛化学有限公司","pagen":"1701"},
{"cjdh":"110454","cm":"北京奥克兰防水工程有限责任公司","pagen":"1701"},
{"cjdh":"110520","cm":"北京奥森特种润滑材料厂","pagen":"1701"}]}
奥森特
*/
function ObjSearch()
{
this.kw = '';
this.option = '';
this.displayId = '';
this.search = function()
{
// if(this.kw=='' || this.kw==null || this.kw.length3)
// {
// alert('输入长度不能为小于3!');
// return;
// }
// switch(this.option)
// {
// //企业
// case '0':
// this.searchCpcj();
// break;
// //产品
// case '1':
// this.searchCp();
// break;
// }
OutputHtml(this);
}
this.searchCpcj= function()
{
var jsonObj = new Array();
var kw = this.kw;
// $('#'+this.displayId).html('');
// var displayId = this.displayId;
$(vCpcj.cjpage).each(function(index,content){
// var cjdhy = content.cjdh;
// var cm = content.cm;
// var pagen = content.pagen;
if(content.cm.indexOf(kw)!=-1)
{
// $('#'+displayId).append("a href='#'"+cm+" | "+pagen+"/abr/");
jsonObj.push({"cm":content.cm,"pagen":content.pagen});
}
});
return jsonObj;
}
this.searchCp = function()
{
var jsonObj = new Array();
var kw = this.kw;
// $('#'+this.displayId).html('');
// var displayId = this.displayId;
$.each(vCp.cppage,function(index,content){
// var cpdh = content.cpdh;
// var page = content.page;
// var ca = content.ca;
// var mc = content.mc;
// var ename = content.ename;
// var bm = content.bm;
if(content.mc.indexOf(kw)!=-1)
{
// $('#'+displayId).append("a href='#'"+mc+" | "+page+"/abr/");
jsonObj.push({"mc":content.mc,"page":content.page});
}
});
return jsonObj;
}
}

!--//
function __$$(id){return document.getElementById(id);} //定义获取ID的方法
function GotoPage(num){ //跳转页
Page = num;
OutputHtml(os);
}
var PageSize = 20; //每页个数
var Page = 1; //当前页码
function OutputHtml(){
//选择的企业还是产品
var vobj = arguments[0];
var vtmp1=vobj.option;
var siteList = '';
switch(vtmp1)
{
//企业
case '0':
siteList = os.searchCpcj();
var obj = eval(siteList); //获取JSON
//var sites = obj.cjpage;
var sites = obj;
break;
//产品
case '1':
siteList = os.searchCp();
var obj = eval(siteList); //获取JSON
// var sites = obj.cppage;
var sites = obj;
break;
}
//获取分页总数
var Pages = Math.floor((sites.length - 1) / PageSize) + 1;

if(Page 1)Page = 1; //如果当前页码小于1
if(Page Pages)Page = Pages; //如果当前页码大于总数
var Temp = "";

var BeginNO = (Page - 1) * PageSize + 1; //开始编号
var EndNO = Page * PageSize; //结束编号
if(EndNO sites.length) EndNO = sites.length;
if(EndNO == 0) BeginNO = 0;

if(!(Page = Pages)) Page = Pages;
__$$("total").innerHTML = "总页数:strong class='f90'" + sites.length + "/strong 显示:strong class='f90'" + BeginNO + "-" + EndNO + "/strong";

//分页
if(Page 1 && Page !== 1){Temp ="a href='javascript:void(0)' onclick='GotoPage(1)'第一页/a a href='javascript:void(0)' onclick='GotoPage(" + (Page - 1) + ")'上一页/a "}else{Temp = "第一页 上一页 "};

//完美的翻页列表
var PageFrontSum = 3; //当页前显示个数
var PageBackSum = 3; //当页后显示个数

var PageFront = PageFrontSum - (Page - 1);
var PageBack = PageBackSum - (Pages - Page);
if(PageFront 0 && PageBack 0)PageBackSum += PageFront; //前少后多,前剩余空位给后
if(PageBack 0 && PageFront 0)PageFrontSum += PageBack; //后少前多,后剩余空位给前
var PageFrontBegin = Page - PageFrontSum;
if(PageFrontBegin 1)PageFrontBegin = 1;
var PageFrontEnd = Page + PageBackSum;
if(PageFrontEnd Pages)PageFrontEnd = Pages;

if(PageFrontBegin != 1) Temp += 'a href="javascript:void(0)" onclick="GotoPage(' + (Page - 10) + ')" title="前10页"../a';
for(var i = PageFrontBegin;i Page;i ++){
Temp += " a href='javascript:void(0)' onclick='GotoPage(" + i + ")'" + i + "/a";
}
Temp += " strong class='f90'" + Page + "/strong";
for(var i = Page + 1;i = PageFrontEnd;i ++){
Temp += " a href='javascript:void(0)' onclick='GotoPage(" + i + ")'" + i + "/a";
}
if(PageFrontEnd != Pages) Temp += " a href='javascript:void(0)' onclick='GotoPage(" + (Page + 10) + ")' title='后10页'../a";

if(Page != Pages){Temp += " a href='javascript:void(0)' onclick='GotoPage(" + (Page + 1) + ");'下一页/a a href='javascript:void(0)' onclick='GotoPage(" + Pages + ")'最末页/a"}else{Temp += " 下一页 最末页"}

__$$("pagelist").innerHTML = Temp;

//输出数据

if(EndNO == 0){ //如果为空
__$$("pagelist").innerHTML='';
__$$("content").innerHTML = "h1没有数据/h1";
return;
}
var html = "";

for(var i = BeginNO - 1;i EndNO;i ++){
switch(vtmp1)
{
//企业
case "0":
html += "a href='#' rel='bookmark' title=" +sites[i].cm+ "";
html += "p class='url'span" +sites[i].cm+ " | "+sites[i].pagen +"/span/p/a";
break;
//产品
case "1":
// if(sites[i].mc.indexOf(vobj.kw)==-1) continue;
html += "a href='#' rel='bookmark' title=" +sites[i].mc+ "";
html += "p class='url'span" +sites[i].mc+ " | "+sites[i].page +"/span/p/a";
break;
}
}
__$$("content").innerHTML = html;
clickShow(); //调用鼠标点击事件

//键盘左右键翻页
document.onkeydown=function(e){
var theEvent = window.event || e;
var code = theEvent.keyCode || theEvent.which;
if(code==37){
if(Page 1 && Page !== 1){
GotoPage(Page - 1);

}
}
if(code==39){
if(Page != Pages){
GotoPage(Page + 1);
}
}
}

//鼠标滚轮翻页
function handle(delta){
if (delta 0){
if(Page 1 && Page !== 1){
GotoPage(Page - 1);
}
}
else{
if(Page != Pages){
GotoPage(Page + 1);
}
}
}
function wheel(event){
var delta = 0;
if (!event) /* For IE. */
event = window.event;
if (event.wheelDelta) { /* IE或者Opera. */
delta = event.wheelDelta / 120;
/** 在Opera9中,事件处理不同于IE
*/
if (window.opera)
delta = -delta;
} else if (event.detail) { /** 兼容Mozilla. */
/** In Mozilla, sign of delta is different than in IE.
* Also, delta is multiple of 3.
*/
delta = -event.detail / 3;
}
/** 如果 增量不等于0则触发
* 主要功能为测试滚轮向上滚或者是向下
*/
if (delta)
handle(delta);
}
/** 初始化 */
if (window.addEventListener)
/** Mozilla的基于DOM的滚轮事件 **/
window.addEventListener("DOMMouseScroll", wheel, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = wheel;


}
//获取链接地址和网站名称
function showLink(source){
var siteUrl = __$$("siteurl");
var siteName = __$$("sitename");
var description = __$$("description");

if(source.getAttribute("rel") == "bookmark"){
var url = source.getAttribute("href");
var title = source.getAttribute("title");
siteUrl.innerHTML = "a href='" + url + "' target='_blank'"+ url +"/a";
siteName.innerHTML = title;
}

}
//鼠标点击事件
function clickShow(){
var links = __$$("content").getElementsByTagName("a");
for(var i=0; ilinks.length; i++){
var url = links[i].getAttribute("href");
var title = links[i].getAttribute("title");
links[i].onclick = function(){
//showLink(this);
return false;
}
}
}
//--

打包下载地址
展开更多 50%)
分享

猜你喜欢

jquery+json实现的搜索加分页效果

Web开发
jquery+json实现的搜索加分页效果

Jquery+JSon 无刷新分页实现代码

Web开发
Jquery+JSon 无刷新分页实现代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

jquery 获取json数据实现代码

Web开发
jquery 获取json数据实现代码

jquery 分页控件实现代码

Web开发
jquery 分页控件实现代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Oracle中实现搜索分页查询

编程语言 网络编程
在Oracle中实现搜索分页查询

jquery JSON的解析方式

Web开发
jquery JSON的解析方式

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用SendMessage函数实现VB程序的查询功能

用SendMessage函数实现VB程序的查询功能

JSP入门:各种数据库连接的实例代码

JSP入门:各种数据库连接的实例代码
下拉加载更多内容 ↓