js简单的分页

逻辑:从后台取出所有数据,在js进行页数等的判断

jsp页面:

引入bootstrap(主要是为了好看一点);两个div用于显示当页的数据和页码;当然还要引入js

<div class="row">
	<div class="col-lg-1"></div>
	<div class="col-lg-10" id="Item">
	</div>
</div>
<div class="row">
	<div class="col-lg-1"></div>
	<div class="col-lg-10" style="text-align:center" id="Pagniation"></div>
</div>

js部分

$(function () {
	//定义要用到的变量
    var taskDatalist = {};//存放所有数据
    var pagenumber;//总页数
    var shownumber=6;//每页显示数
    var pagenumbernow=1;//当前页
    initTable();//获取数据并第一次加载页面
	
	function initTable() {
		//获取全部数据并第一次加载
        latool.get({
            url: xxxxxxx,
            success: function (data) {
                taskDatalist=data;
                pagenumbernow=1;
                pagenumber=Math.ceil(taskDatalist.length / shownumber);
                initData(taskDatalist,0,shownumber);
            }
        });
    }
function initData(data,start,end) {
		//传入值为(全部数据,起始第n个,结束第n个)
        var $Item= $('#Item');
        var $Pagniation = $('#Pagniation');
        $Item.html('');
        $Pagniation.html('');
        for (var k=start; k < end&&k < data.length; k++) {
            var value = data[k];
            
			xxxxxxxxxxxxxxx//此处进行画面数据的显示
			
            $Item.append(html);
        }
        //各种页码按鈕
        $Pagniation.append('共'+taskDatalist.length+'条');
        if(parseInt(pagenumbernow)-2>1&&pagenumbernow>3){
            var $btn = $('<button></button>').attr('class', 'btn').attr('data-click-data', 1).text('首页');
            $Pagniation.append($btn);
        }
        if(pagenumbernow>1){
            var $btn = $('<button></button>').attr('class', 'btn').attr('data-click-data', parseInt(pagenumbernow)-1).text('<');
            $Pagniation.append($btn);
        }
        if(pagenumber<=5||pagenumbernow<=3){
            for(var i=1;i<=pagenumber&&i<=5;i++){
                if(i==pagenumbernow){
                    var $btn = $('<button></button>').attr('class', 'btn-lg').attr('data-click-data', i).text(i);
                }else{
                    var $btn = $('<button></button>').attr('class', 'btn').attr('data-click-data', i).text(i);
                }
                $Pagniation.append($btn);
            }
        }else{
            for(var i=parseInt(pagenumbernow)-2;i<=parseInt(pagenumbernow)+2&&i<=pagenumber;i++){
                if(i==pagenumbernow){
                    var $btn = $('<button></button>').attr('class', 'btn-lg').attr('data-click-data', i).text(i);
                }else{
                    var $btn = $('<button></button>').attr('class', 'btn').attr('data-click-data', i).text(i);
                }
                $Pagniation.append($btn);
            }
        }
        if(parseInt(pagenumbernow)+1<pagenumber){
            var $btn = $('<button></button>').attr('class', 'btn').attr('data-click-data', parseInt(pagenumbernow)+1).text('>');
            $Pagniation.append($btn);
        }
        if(parseInt(pagenumbernow)+2<pagenumber){
            var $btn = $('<button></button>').attr('class', 'btn').attr('data-click-data', pagenumber).text('尾页('+pagenumber+')');
            $Pagniation.append($btn);
        }
        $Pagniation.append("跳至");
        var $jump = $('<input></input>').attr('id', 'jumppage').attr('type', 'number').attr('style', 'width:5ex;').attr('step', '1').attr('min', '1').attr('max', pagenumber);
        $Pagniation.append($jump);
        $Pagniation.append("页");

        $('#jumppage').bind('keyup', function(e){
        //去除非数值
            this.value=this.value.replace(/[^\d]/g, "",".");
            if(parseInt(this.value)>pagenumber){
                this.value=pagenumber;
            }else if(parseInt(this.value)<0){
                this.value='';
            }
        })
        $('#jumppage').keypress(function(event){
        //敲回车时进行跳页
            if(event.which===13){
                pagenumbernow=this.value;
                initData(taskDatalist,(this.value-1)*shownumber,this.value*shownumber);
            }
            })
    }
    $('#taskPagniation').delegate('button', 'click', function(e){
    //跳页
        pagenumbernow=$(this).attr('data-click-data');
        initData(taskDatalist,(pagenumbernow-1)*shownumber,pagenumbernow*shownumber);
    })
});

效果如下
首页
中间页
尾页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值