JQuery实现前端分页

<!doctype html>
<html>

<head>
    <meta charset='utf-8'>
    <style type="text/css">
        a {
            text-decoration: none;
        }

        .table2 {
            border: #C8C8C8 solid;
            border-width: 1px 0px 0px 1px;
            background: #F3F0F0;
            margin-top: 25px;
        }

        .td0 {
            border: #C8C8C8 solid;
            border-width: 0 0 1px 0;
        }

        .td2 {
            border: #C8C8C8 solid;
            border-width: 0 1px 1px 0;
        }

        .barcon {
            width: 1000px;
            margin: 0 auto;
            text-align: center;
        }

        .barcon1 {
            font-size: 17px;
            float: left;
            margin-top: 20px;
        }

        .barcon2 {
            float: right;
        }

        .barcon2 ul {
            margin: 20px 0;
            padding-left: 0;
            list-style: none;
            text-align: center;
        }

        .barcon2 li {
            display: inline;
        }

        .barcon2 a {
            font-size: 16px;
            font-weight: normal;
            display: inline-block;
            padding: 5px;
            padding-top: 0;
            color: black;
            border: 1px solid #ddd;
            background-color: #fff;
        }

        .barcon2 a:hover {
            background-color: #eee;
        }

        .ban {
            opacity: .4;
        }
    </style>
</head>

<body>
    <table width="950" cellpadding="0" cellspacing="0" class="table2" align="center">
        <thead>
            <tr>
                <td colspan="3" height="33" class="td0"> </td>
                <td align="center" class="td2"><a href="###">添加用户</a></td>
            </tr>
            <tr align="center">
                <th width="150" height="33" class="td2">序号</th>
                <th width="300" class="td2">用户名</th>
                <th width="250" class="td2">权限</th>
                <th width="250" class="td2">操作</th>
            </tr>
        </thead>
        <tbody id="adminTbody">
            <tr align="center">
                <td class="td2" height="33" width="150">1</td>
                <td class="td2">admin</td>
                <td class="td2">管理员</td>
                <td class="td2"><a href="###">修改</a></td>
            </tr>
        </tbody>
    </table>
    <div id="barcon" class="barcon">
        <div id="barcon1" class="barcon1"></div>
        <div id="barcon2" class="barcon2">
            <ul>
                <li><a href="###" id="firstPage">首页</a></li>
                <li><a href="###" id="prePage">上一页</a></li>
                <li><a href="###" id="nextPage">下一页</a></li>
                <li><a href="###" id="lastPage">尾页</a></li>
                <li><select id="jumpWhere"> </select></li>
                <li><a href="###" id="jumpPage" onclick="jumpPage()">跳转</a></li>
            </ul>
        </div>
    </div>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script>
        /*动态生成用户函数 num为生成的用户数量*/
        function dynamicAddUser(num) {
            for (var i = 1; i <= num; i++) {
                var trNode = document.createElement("tr");
                $(trNode).attr("align",
                    "center"); //序号   
                var tdNodeNum = document.createElement("td");
                $(tdNodeNum).html(i + 1);
                tdNodeNum.style.width = "150px";
                tdNodeNum.style.height = "33px";
                tdNodeNum.className = "td2";
                //用户名   
                var tdNodeName = document.createElement("td");
                $(tdNodeName).html("lzj" + i);
                tdNodeName.style.width = "300px";
                tdNodeName.className = "td2";
                //权限      
                var tdNodePri = document.createElement("td");
                tdNodePri.style.width = "250px";
                tdNodePri.className = "td2";
                var priText = document.createElement("span");
                $(priText).css({
                    "display": "inline-block",
                    "text-align": "center"
                });
                $(priText).text("普通用户");
                tdNodePri.appendChild(priText);
                //操作   
                var tdNodeOper = document.createElement("td");
                tdNodeOper.style.width = "170px";
                tdNodeOper.className = "td2";
                var editA = document.createElement("a");
                $(editA).attr("href", "###").text("编辑");
                $(editA).css({
                    display: "inline-block"
                });
                tdNodeOper.appendChild(editA);
                trNode.appendChild(tdNodeNum);
                trNode.appendChild(tdNodeName);
                trNode.appendChild(tdNodePri);
                trNode.appendChild(tdNodeOper);
                $("#adminTbody")[0].appendChild(trNode);
            }
        }
        $(function () {
            dynamicAddUser(80);
            goPage(1, 10);
            var tempOption = "";
            for (var i = 1; i <= totalPage; i++) {
                tempOption += '<option value=' + i + '>' + i + '</option>'
            }
            $("#jumpWhere").html(tempOption);
        })
        /**
         * 分页函数 
         * pno--页数
         * psize--每页显示记录数 
         * 分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数 
         * 纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能
         **/
        var pageSize = 0;
        //每页显示行数
        var currentPage_ = 1;
        //当前页全局变量,用于跳转时判断是否在相同页,在就不跳,否则跳转。
        var totalPage;
        //总页数
        function goPage(pno, psize) {
            var itable = document.getElementById("adminTbody");
            var num = itable.rows.length;
            //表格所有行数(所有记录数)   
            pageSize = psize;
            //每页显示行数    
            //总共分几页     
            if (num / pageSize > parseInt(num / pageSize)) {
                totalPage = parseInt(num / pageSize) + 1;
            } else {
                totalPage = parseInt(num / pageSize);
            }
            var currentPage =
                pno;
            //当前页数  
            currentPage_ = currentPage;
            var startRow = (currentPage - 1) * pageSize + 1;
            var endRow = currentPage * pageSize;
            endRow = (endRow > num) ? num :
                endRow;

            //遍历显示数据实现分页    
            /*for (var i = 1; i < (num + 1); i++) {
                var irow = itable.rows[i - 1];
                if (i >= startRow && i <= endRow) {
                    irow.style.display = "";
                } else {
                    irow.style.display = "none";
                }
            }*/
            $("#adminTbody tr").hide();
            for (var i = startRow - 1; i < endRow; i++) {
                $("#adminTbody tr").eq(i).show();
            }
            var tempStr = "共" + num + "条记录 分" + totalPage + "页 当前第" + currentPage + "页";
            document.getElementById("barcon1").innerHTML = tempStr;
            if (currentPage > 1) {
                $("#firstPage").on("click", function () {
                    goPage(1, psize);
                }).removeClass("ban");
                $("#prePage").on("click", function () {
                    goPage(currentPage - 1, psize);
                }).removeClass("ban");
            } else {
                $("#firstPage").off("click").addClass("ban");
                $("#prePage").off("click").addClass("ban");
            }
            if (currentPage < totalPage) {
                $("#nextPage").on("click", function () {
                    goPage(currentPage + 1, psize);
                }).removeClass("ban")
                $("#lastPage").on("click", function () {
                    goPage(totalPage, psize);
                }).removeClass("ban")
            } else {
                $("#nextPage").off("click").addClass("ban");
                $("#lastPage").off("click").addClass("ban");
            }
            $("#jumpWhere").val(currentPage);
        }
        //跳转
        function jumpPage() {
            var num = parseInt($("#jumpWhere").val());
            if (num != currentPage_) {
                goPage(num, pageSize);
            }
        }
    </script>
</body>

</html>

效果

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.准备工作 (1)引入jQuery分页插件 在HTML文件中引入jQuery分页插件(如jquery.pagination.js)的js文件。 (2)创建分页容器 在HTML文件中创建一个容器,用于显示分页导航条和数据内容。 (3)获取数据 使用ajax请求获取需要分页的数据,并将数据渲染到容器中。 2.初始化分页插件 使用jQuery的pagination()方法初始化分页插件,设置相关参数,如总页数、每页显示的数据数量、当前页码等。 3.绑定事件 为分页导航条中的页码绑定点击事件,当点击时修改当前页码,并重新获取数据进行渲染。 示例代码: HTML文件: ``` <div id="data-container"></div> <div id="pagination"></div> ``` JS文件: ``` var pageSize = 10; //每页显示的数据数量 var currentPage = 1; //当前页码 getData(currentPage); //获取数据并渲染到页面 function getData(page) { $.ajax({ url: 'data.php', type: 'get', data: { page: page, pageSize: pageSize }, success: function(res) { //将数据渲染到页面 renderData(res.list); //初始化分页插件 $("#pagination").pagination({ currentPage: page, //当前页码 totalPage: res.totalPage, //总页数 isShow: true, //是否显示分页导航条 count: 5, //分页导航条中显示的页码数量 homePageText: "首页", endPageText: "尾页", prevPageText: "上一页", nextPageText: "下一页", callback: function(current) { //点击分页导航条中的页码触发的函数 currentPage = current; //修改当前页码 getData(currentPage); //重新获取数据进行渲染 } }); } }); } //将数据渲染到页面 function renderData(list) { var html = ""; for (var i = 0; i < list.length; i++) { html += "<div>" + list[i].title + "</div>"; } $("#data-container").html(html); } ``` PHP文件(data.php): ``` $page = $_GET['page']; //当前页码 $pageSize = $_GET['pageSize']; //每页显示的数据数量 //查询数据总条数 $totalCount = mysqli_num_rows(mysqli_query($conn, "select * from table_name")); //计算总页数 $totalPage = ceil($totalCount / $pageSize); //查询当前页码需要显示的数据 $start = ($page - 1) * $pageSize; $sql = "select * from table_name limit $start, $pageSize"; $result = mysqli_query($conn, $sql); $list = array(); while ($row = mysqli_fetch_assoc($result)) { $list[] = $row; } //返回数据 $res = array( 'totalPage' => $totalPage, 'list' => $list ); echo json_encode($res); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值