Jquery简单分页实现方法

下面就为您详细讲解如何实现Jquery简单分页,并附上两个示例说明。

什么是Jquery简单分页?

在开发web应用时,数据的展示通常需要使用分页技术进行展示,这样可以减轻页面的加载压力,同时也能够更好地进行数据筛选和搜索。Jquery简单分页技术就是通过Jquery插件来实现的类似于“上一页”、“下一页”等按钮,用户可以通过点击这些按钮来查看更多的数据。

Jquery实现分页步骤

1.引入Jquery库文件和Jquery分页插件

在head标签中引入Jquery库文件和Jquery分页插件的js和css文件。

<head>
  <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  <script src="https://cdn.bootcss.com/jquery.simplePagination.js/1.6/jquery.simplePagination.js"></script>
  <link rel="stylesheet" href="https://cdn.bootcss.com/jquery.simplePagination.js/1.6/simplePagination.css" />
</head>

2.设置分页基本参数

在代码中设置分页的基本参数,比如每页显示几条数据、总共有多少页等等。

var perPage = 5; //每页显示5条数据
var currentPage = 1; //当前页数
var totalPage = 20; //总页数

3.生成分页按钮

使用Jquery分页插件来生成分页按钮,代码如下:

$('#pagination').pagination({
  totalPages: totalPage, //总页数
  visiblePages: 5, //显示页数
  prevText: '<', //上一页
  nextText: '>', //下一页
  onPageClick: function(page, event) { //点击页码事件
    loadTableData(page); //加载当前页数据
  }
});

4.加载数据并显示分页效果

实现loadTableData函数来加载数据,代码如下:

function loadTableData(page) {
  var requestData = {
    limit: perPage,
    page: page
  };
  //发送Ajax请求
  $.ajax({
    type: 'GET',
    url: 'https://api.example.com/data',
    dataType: 'json',
    data: requestData,
    success: function(response) {
      var start = (page - 1) * perPage;
      var dataToShow = response.data.slice(start, start + perPage);
      //渲染表格数据
      renderTable(dataToShow);
    }
  });
}

5.完整示例一

下面是一个简单的完整示例,可以根据具体需要进行修改和优化。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Jquery Simple Pagination</title>
  <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  <script src="https://cdn.bootcss.com/jquery.simplePagination.js/1.6/jquery.simplePagination.js"></script>
  <link rel="stylesheet" href="https://cdn.bootcss.com/jquery.simplePagination.js/1.6/simplePagination.css" />
</head>

<body>
  <table id="data-table">
    <thead>
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
      </tr>
    </thead>
    <tbody>
    </tbody>
  </table>

  <div id="pagination"></div>

  <script type="text/javascript">
    //分页参数
    var perPage = 5;
    var currentPage = 1;
    var totalPage = 0;

    //初始化分页插件
    $('#pagination').pagination({
      totalPages: totalPage,
      visiblePages: 5,
      prevText: '<',
      nextText: '>',
      onPageClick: function(page, event) {
        loadTableData(page);
      }
    });

    //加载表格数据
    function loadTableData(page) {
      var requestData = {
        limit: perPage,
        page: page
      };

      $.ajax({
        type: 'GET',
        url: 'https://api.example.com/data',
        dataType: 'json',
        data: requestData,
        success: function(response) {
          var start = (page - 1) * perPage;
          var dataToShow = response.data.slice(start, start + perPage);
          totalPage = Math.ceil(response.total / perPage);
          $('#pagination').pagination('update', {//更新分页控件
            totalPages: totalPage,
            currentPage: page
          });
          renderTable(dataToShow);
        }
      });
    }

    //渲染表格数据
    function renderTable(data) {
      $('#data-table tbody').empty();
      $.each(data, function(index, item) {
        var row = '<tr>' +
          '<td>' + item.id + '</td>' +
          '<td>' + item.name + '</td>' +
          '<td>' + item.age + '</td>' +
          '</tr>';
        $('#data-table tbody').append(row);
      });
    }
    //默认加载第一页数据
    loadTableData(currentPage);
  </script>
</body>

</html>

6.完整示例二

下面是另一个完整示例,主要实现了分页按钮的样式自定义。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Jquery Simple Pagination with Style</title>
  <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  <script src="https://cdn.bootcss.com/jquery.simplePagination.js/1.6/jquery.simplePagination.js"></script>
  <link rel="stylesheet" href="https://cdn.bootcss.com/jquery.simplePagination.js/1.6/simplePagination.css" />
  <style>
    .paginationjs-pages {
      display: inline-block;
      margin: 20px 0px;
      text-align: center;
    }

    .paginationjs-pages li {
      display: inline-block;
      margin-right: 5px;
      border: 1px solid #ddd;
      padding: 5px 10px;
      cursor: pointer;
      background-color: #fff;
    }

    .paginationjs-pages li.active {
      font-weight: bold;
      border: 1px solid #aaa;
      background-color: #aaa;
      color: #fff;
      cursor: default;
    }

    .paginationjs-pages li.disabled {
      opacity: 0.5;
      cursor: not-allowed;
    }

    .paginationjs-prev,
    .paginationjs-next {
      display: inline-block;
      margin-right: 5px;
      border: 1px solid #ddd;
      padding: 5px 10px;
      cursor: pointer;
      background-color: #fff;
    }

    .paginationjs-prev.disabled,
    .paginationjs-next.disabled {
      opacity: 0.5;
      cursor: not-allowed;
    }

    .paginationjs-prev {
      margin-right: 10px;
    }

    .paginationjs-next {
      margin-left: 10px;
    }
  </style>
</head>

<body>
  <table id="data-table">
    <thead>
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
      </tr>
    </thead>
    <tbody>
    </tbody>
  </table>

  <div id="pagination"></div>

  <script type="text/javascript">
    //分页参数
    var perPage = 5;
    var currentPage = 1;
    var totalPage = 0;

    //初始化分页插件
    $('#pagination').pagination({
      totalPages: totalPage,
      visiblePages: 5,
      prevText: '<<',
      nextText: '>>',
      innerWindow: 2,
      outerWindow: 0,
      onPageClick: function(page, event) {
        loadTableData(page);
      },
      pageElementSort: ['$prev', 'num', 'num', 'num', 'num', '$next']//分页模板
    });

    //加载表格数据
    function loadTableData(page) {
      var requestData = {
        limit: perPage,
        page: page
      };

      $.ajax({
        type: 'GET',
        url: 'https://api.example.com/data',
        dataType: 'json',
        data: requestData,
        success: function(response) {
          var start = (page - 1) * perPage;
          var dataToShow = response.data.slice(start, start + perPage);
          totalPage = Math.ceil(response.total / perPage);
          $('#pagination').pagination('update', {
            totalPages: totalPage,
            currentPage: page
          });
          renderTable(dataToShow);
        }
      });
    }

    //渲染表格数据
    function renderTable(data) {
      $('#data-table tbody').empty();
      $.each(data, function(index, item) {
        var row = '<tr>' +
          '<td>' + item.id + '</td>' +
          '<td>' + item.name + '</td>' +
          '<td>' + item.age + '</td>' +
          '</tr>';
        $('#data-table tbody').append(row);
      });
    }
    //默认加载第一页数据
    loadTableData(currentPage);
  </script>
</body>

</html>

以上就是Jquery简单分页实现方法的完整攻略啦,希望能帮助到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jquery简单分页实现方法 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQWidgets jqxGrid altrows属性

    以下是关于“jQWidgets jqxGrid altrows属性”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 altrows 属性用于设置表格中的交替行的样式。替行样式可以使表格更易于阅读和区分。altrows 属性的语法如下: altrows: true 在上述代码中,true 表示启用交替行样式。 完整攻略 下面是 jqxGrid 控…

    jquery 2023年5月10日
    00
  • jQWidgets jqxDataTable addRow()方法

    以下是关于“jQWidgets jqxDataTable addRow()方法”的完整攻略,包含两个示例说明: 简介 addRow() 方法是 jqxDataTable 控件的一个方法,用于向表格中添加行数据。该方法受一个参数,即要添加的数据。 攻略 以下是 jqxDataTable 控件的 addRow() 方法的完整略: 添加行数据 在 jqxDataT…

    jquery 2023年5月11日
    00
  • 浅析jQuery1.8的几个小变化

    浅析jQuery1.8的几个小变化 jQuery是一款优秀的JS库,常见于Web前端开发中。在版本更新中,jQuery也随时更新优化,其中1.8版本中涵盖了一些小变化,下面我们详细介绍一下。 .prop()方法和.attr()方法 在jQuery1.6版本中,.prop()方法和.attr()方法已经分别实现了对DOM属性和HTML属性的操作,但是在1.6中…

    jquery 2023年5月28日
    00
  • 11款新鲜的jQuery插件[附所有demo下载]

    11款新鲜的jQuery插件攻略 本文将介绍11款新鲜的jQuery插件,并提供所有demo的下载链接。 1. jquery-confirm jquery-confirm是一个美观而强大的JavaScript弹出框插件,支持多种类型的弹出框,如询问框、确认框、警告框等。 示例 以下是一个询问框的示例: $.confirm({ title: ‘你确定要删除这个…

    jquery 2023年5月27日
    00
  • jQuery $.each遍历对象、数组用法实例

    当我们需要遍历一个对象或者数组的时候,往往使用for循环,但是使用jQuery提供的$.each()方法会更加便捷。本文将详细讲解$.each()方法的用法,包括如何遍历对象和数组,以及如何在遍历过程中终止循环。 遍历数组 使用$.each()方法遍历数组的基本语法如下所示: $.each(array, function(index, value) { //…

    jquery 2023年5月28日
    00
  • Datatable删除行的Delete和Remove方法的区别介绍

    Datatable删除行的Delete和Remove方法的区别介绍 在使用Datatable操作数据时,经常需要对数据进行删除操作。Datatable提供了两个方法来删除行,分别是Delete和Remove,本文将对这两种方法进行详细介绍,并且结合实例进行说明。 Delete方法 Delete方法用于标记行为删除状态,但是并不实际从Datatable中删除该…

    jquery 2023年5月27日
    00
  • JQuery对id中含有特殊字符的转义处理示例

    JQuery对id中含有特殊字符的转义处理,可以通过两种方法来实现:jQuery.escapeSelector()和使用反斜杠转义特殊字符。 jQuery.escapeSelector() jQuery.escapeSelector()是在jQuery 3.0版本中添加的新方法,可以处理在id名中出现的CSS字符,例如空格、句点、井号等。 示例一: HTML…

    jquery 2023年5月28日
    00
  • jQWidgets jqxPivotGrid autoResize属性

    以下是关于 jQWidgets jqxPivotGrid 组件中 autoResize 属性的详细攻略。 jQWidgets jqxPivotGrid autoResize 属性 jQWidgets jqxPivotGrid 组件的 autoResize 属性用于控制组件是否自动调整大小以适应其容器。 语法 $(‘#pivotGrid’).jqxPivotG…

    jquery 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部