纯jQuery实现前端分页功能

下面是“纯jQuery实现前端分页功能”的攻略:

1.准备工作

首先,需要在网站中引入jQuery,可以使用CDN或者下载jQuery文件引入。

<!-- 使用CDN引入jQuery -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

2.获取数据

前端分页的数据需要先通过AJAX请求获取,接口返回的数据需要是一个包含所有数据的数组。

// AJAX请求获取数据
$.ajax({
  url: 'http://example.com/api/data',
  success: function (response) {
    // response是接口返回的数据
    var dataList = response.data;
    // 对获取的数据进行处理
    // ...
  }
});

3.分页处理

分页处理需要根据获取到的数据和每页展示的数量来计算出总页数。然后可以通过循环遍历来生成分页的DOM元素,最后渲染到页面中。

// 每页展示的数量
var pageSize = 10;
// 总数据量
var total = dataList.length;
// 总页数
var totalPages = Math.ceil(total / pageSize);

// 分页展示
for (var i = 1; i <= totalPages; i++) {
  $('<li></li>').text(i).appendTo('.pagination');
}

上面的代码生成了分页的DOM元素,并将其添加到类名为.pagination的DOM元素中。

4.数据展示

数据展示需要根据当前页数和每页展示的数量来获取对应的数据,并将其展示到页面中。这个过程可以使用.slice()方法来实现。

// 当前页数
var currentPage = 1;
// 获取当前页对应的数据
var startIndex = (currentPage - 1) * pageSize;
var endIndex = startIndex + pageSize;
var pageData = dataList.slice(startIndex, endIndex);

// 数据展示
for (var i = 0; i < pageData.length; i++) {
  var item = $('<div></div>').text(pageData[i].title);
  item.appendTo('.data-list');
}

上面的代码获取了当前页对应的数据,并将其渲染到类名为.data-list的DOM元素中。

示例说明

下面是两个示例说明:

示例一:静态页面的前端分页

对于一些静态页面来说,如果数据不是很多,并且没有后端接口的调用,可以考虑通过前端分页的方式来实现数据的展示。

示例代码如下:

<div class="data-list"></div>

<ul class="pagination"></ul>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
  // 静态数据
  var dataList = [
    {title: '数据1'},
    {title: '数据2'},
    // ...
  ];

  // 每页展示的数量
  var pageSize = 5;
  // 总数据量
  var total = dataList.length;
  // 总页数
  var totalPages = Math.ceil(total / pageSize);
  // 当前页数
  var currentPage = 1;

  // 分页展示
  for (var i = 1; i <= totalPages; i++) {
    $('<li></li>').text(i).appendTo('.pagination');
  }

  // 数据展示
  function renderData() {
    // 获取当前页对应的数据
    var startIndex = (currentPage - 1) * pageSize;
    var endIndex = startIndex + pageSize;
    var pageData = dataList.slice(startIndex, endIndex);

    // 渲染数据
    $('.data-list').empty();
    for (var i = 0; i < pageData.length; i++) {
      var item = $('<div></div>').text(pageData[i].title);
      item.appendTo('.data-list');
    }
  }

  // 绑定分页点击事件
  $('.pagination').on('click', 'li', function () {
    currentPage = parseInt($(this).text());
    renderData();
    // 切换页码样式
    $(this).addClass('active').siblings().removeClass('active');
  });

  // 初始时渲染数据
  renderData();
  // 初始时高亮第一页
  $('.pagination li:first-child').addClass('active');
</script>

上面的代码在一个静态页面中实现了前端分页的效果。

示例二:AJAX动态获取数据的前端分页

对于需要展示大量数据的网站,可以通过调用后端接口来获取数据,并通过前端分页的方式来展示数据。

示例代码如下:

<div class="data-list"></div>

<ul class="pagination"></ul>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
  var currentPage = 1;
  var pageSize = 10;

  // 获取数据
  function getData() {
    $.ajax({
      url: 'http://example.com/api/data',
      success: function (response) {
        var dataList = response.data;
        var total = dataList.length;
        var totalPages = Math.ceil(total / pageSize);

        // 分页展示
        for (var i = 1; i <= totalPages; i++) {
          $('<li></li>').text(i).appendTo('.pagination');
        }

        // 绑定分页点击事件
        $('.pagination').on('click', 'li', function () {
          currentPage = parseInt($(this).text());
          renderData(dataList);
          // 切换页码样式
          $(this).addClass('active').siblings().removeClass('active');
        });

        // 初始时渲染数据
        renderData(dataList);
        // 初始时高亮第一页
        $('.pagination li:first-child').addClass('active');
      }
    });
  }

  // 渲染数据
  function renderData(dataList) {
    // 获取当前页对应的数据
    var startIndex = (currentPage - 1) * pageSize;
    var endIndex = startIndex + pageSize;
    var pageData = dataList.slice(startIndex, endIndex);

    // 渲染数据
    $('.data-list').empty();
    for (var i = 0; i < pageData.length; i++) {
      var item = $('<div></div>').text(pageData[i].title);
      item.appendTo('.data-list');
    }
  }

  // 调用获取数据方法
  getData();
</script>

上面的代码通过调用后端接口来获取数据,并通过前端分页的方式来展示数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯jQuery实现前端分页功能 - Python技术站

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

相关文章

  • jquery利用json实现页面之间传值的实例解析

    下面我将详细讲解“jquery利用json实现页面之间传值的实例解析”的完整攻略。 什么是JSON? JSON(JavaScript Object Notation),是一种轻量级的数据交换格式。它基于JavaScript Programming Language Standard ECMA-262 3rd Edition – December 1999的一…

    jquery 2023年5月28日
    00
  • jQuery UI的Draggable start事件

    以下是关于 jQuery UI 的 Draggable start 事件的详细攻略: jQuery UI Draggable start 事件 start 事件在可拖动元素开始拖动时触发。可以使用该事件来执行一些操作,例如在拖动开始时显示一个提示框或更改可拖动元素的样式。 语法 $(selector).draggable({ start: function(…

    jquery 2023年5月11日
    00
  • jQuery操作Table技巧大汇总

    jQuery操作Table技巧大汇总 Table是网页中常用的一种展示数据的方式,而jQuery是JavaScript中最流行的库之一。本篇攻略将详细讲解如何使用jQuery操作Table以及一些常见的技巧和实例。 一、使用jQuery获取Table 使用jQuery获取Table非常简单,只需要使用下面这行代码即可: var table = $(‘tabl…

    jquery 2023年5月28日
    00
  • jQWidgets jqxListBox incrementalSearchDelay属性

    jQWidgets jqxListBox incrementalSearchDelay属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中之一。本文将详细介绍jqxListBox的incrementalSearchDelay属性,包括定义、语法和示例。 incrementalSearchDela…

    jquery 2023年5月10日
    00
  • jQWidgets jqxListBox clear()方法

    jQWidgets jqxListBox clear()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中之一,本文将详细介绍jqxListBox的clear()方法,包括定义、语法和示例。 clear()方法的定义 jqxListBox的clear()方法用于清空列表框中的所有项。当用户调用…

    jquery 2023年5月10日
    00
  • jQuery1.6 使用方法二

    jQuery 1.6 是 jQuery 的一个版本,在使用过程中,有多种使用方法。其中,方法二是一种常用的使用方法,它可以通过 CDN 或本地引用的方式来使用 jQuery 库,下面介绍该方法的详细攻略。 1. 引用 jQuery 1.6 库 引用 jQuery 库是使用 jQuery 的第一步,我们可以通过以下两种方式来引用 jQuery 1.6 库: 1…

    jquery 2023年5月28日
    00
  • javascript,jquery闭包概念分析

    JavaScript和jQuery都有闭包(closure)的概念,因此我们需要一个详细的攻略来解释这个概念以及如何在编写代码的过程中利用它。 什么是闭包? 闭包是指在函数内部定义的函数,它可以访问外部函数中定义的任何变量,并保持对它们的引用。在函数调用之后,闭包仍然可以访问这些变量,而不会受到外部环境的影响。 闭包通常用于隐藏一些私有变量,从而防止它们被其…

    jquery 2023年5月28日
    00
  • jQuery中on方法使用注意事项详解

    下面我将详细讲解“jQuery中on方法使用注意事项详解”的完整攻略。 一、什么是on方法 on()方法是 jQuery 中非常重要的一个方法,用于为元素添加事件处理程序。该方法可以为当前或未来的元素添加事件,使用该方法添加事件处理程序在 jQuery 1.7 后成为了首选的方式。 二、on方法的使用注意事项 1. 事件委托 on()方法最大的特点是可以进行…

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