javascript实现json页面分页实例代码

yizhihongxing

首先讲解一下如何使用JavaScript实现JSON数据的页面分页。

一、前置知识

在使用JavaScript实现JSON分页前,需要先掌握一些前置知识:

  1. AJAX:用于实现异步的数据传输。
  2. JSON:JavaScript Object Notation,一种轻量级的数据交互格式。

二、代码实现

1. 引入jQuery库

在实际应用中,我们常常使用jQuery库来使代码更加简洁,因此需要在HTML中引入jQuery库。

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

2. 获取JSON数据

使用jQuery的$.ajax()方法获取JSON数据。在这里以获取豆瓣电影TOP250的JSON数据为例:

function getMovieData(page) {
    $.ajax({
        url: 'https://api.douban.com/v2/movie/top250',
        data: {
            start: (page - 1) * 20,
            count: 20
        },
        dataType: 'jsonp',
        success: function (result) {
            console.log(result); // 打印获取的JSON数据
        }
    });
}

其中,通过设置start和count参数来实现分页。start表示获取数据的起始位置,count表示每页需要获取的数据量。

3. 分页显示数据

获取到JSON数据后,我们需要将它们分页显示在页面上。

3.1 分页实现

首先,我们需要实现分页功能。以下是一个简单的分页函数:

function showPage(totalPage, currentPage) {
    var pagination = '';
    for (var i = 1; i <= totalPage; i++) {
        if (i === currentPage) {
            pagination += '<span class="active">' + i + '</span>';
        } else {
            pagination += '<span>' + i + '</span>';
        }
    }
    $('#pagination').html(pagination);
}

其中,totalPage表示总页数,currentPage表示当前页数。通过遍历总页数生成对应的页码标签,并将当前页数进行标注。

3.2 显示数据

接着,我们需要根据分页获取到的JSON数据,在页面上展示对应的数据。以下是一个简单的数据展示函数:

function showData(data) {
    var html = '';
    $.each(data, function (index, item) {
        html += '<div class="card">';
        html += '<div class="img"><img src="' + item.images.large + '" alt="' + item.title + '"></div>';
        html += '<div class="title">' + item.title + '</div>';
        html += '<div class="rating">评分:' + item.rating.average + '</div>';
        html += '</div>';
    });
    $('#movie-list').html(html);
}

其中,通过遍历获取到的JSON数据,生成对应的HTML代码,并将其渲染到页面上。

4. 完整代码

最后,我们将上述三个函数整合在一起,完成一个简单的JSON分页应用:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JSON分页实例</title>
    <style>
        .card {
            background-color: #efefef;
            margin: 10px;
            padding: 10px;
            display: inline-block;
            width: 200px;
            text-align: center;
        }
        .card .img img {
            width: 100px;
            height: 150px;
        }
        .active {
            color: red;
        }
    </style>
</head>
<body>
    <div id="movie-list"></div>
    <div id="pagination"></div>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        var currentPage = 1, // 当前页
            totalPage = 0; // 总页数

        // 获取JSON数据
        function getMovieData(page) {
            $.ajax({
                url: 'https://api.douban.com/v2/movie/top250',
                data: {
                    start: (page - 1) * 20,
                    count: 20
                },
                dataType: 'jsonp',
                success: function (result) {
                    console.log(result); // 打印获取的JSON数据
                    showData(result.subjects); // 将数据展示在页面上
                    totalPage = Math.ceil(result.total / 20); // 计算总页数
                    showPage(totalPage, currentPage); // 显示分页栏
                }
            });
        }

        // 分页实现
        function showPage(totalPage, currentPage) {
            var pagination = '';
            for (var i = 1; i <= totalPage; i++) {
                if (i === currentPage) {
                    pagination += '<span class="active">' + i + '</span>';
                } else {
                    pagination += '<span>' + i + '</span>';
                }
            }
            $('#pagination').html(pagination);
        }

        // 显示数据
        function showData(data) {
            var html = '';
            $.each(data, function (index, item) {
                html += '<div class="card">';
                html += '<div class="img"><img src="' + item.images.large + '" alt="' + item.title + '"></div>';
                html += '<div class="title">' + item.title + '</div>';
                html += '<div class="rating">评分:' + item.rating.average + '</div>';
                html += '</div>';
            });
            $('#movie-list').html(html);
        }

        // 初始化页面
        $(function () {
            getMovieData(currentPage); // 默认获取第一页的数据
        });

        // 点击分页按钮获取对应页数的数据
        $('#pagination').on('click', 'span', function () {
            currentPage = parseInt($(this).text()); // 获取当前页数
            getMovieData(currentPage);
        });
    </script>
</body>
</html>

当我们打开HTML页面时,就能看到一组豆瓣电影TOP250的数据,同时在下方生成了对应的分页栏。当我们点击分页栏中的页码时,会动态加载对应页数的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现json页面分页实例代码 - Python技术站

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

相关文章

  • JS实现的文件拖拽上传功能示例

    JS实现的文件拖拽上传功能可以让用户通过拖拽文件到页面上的区域来上传文件,而不用手动选择文件上传。下面是实现文件拖拽上传功能的完整攻略: 步骤1:为文件拖拽区域添加事件监听器 需要为文件拖拽区域添加以下3个事件监听器: dragenter:当拖拽文件进入文件拖拽区域时触发,此时需要对文件拖拽区域的样式进行修改。 dragover:当鼠标在文件拖拽区域内移动时…

    JavaScript 2023年5月28日
    00
  • JS document对象简单用法完整示例

    让我们来详细讲解“JS document对象简单用法完整示例”的攻略。文本将被分为几个部分:介绍什么是document对象、document对象的一些属性和方法、示例说明。 什么是document对象? document 对象是指代整个文档的根节点,所有的HTML元素都是文档的后代,可以通过该对象来操作 HTML 页面。 document对象的属性和方法 d…

    JavaScript 2023年5月27日
    00
  • 前端设计模式——解释器模式

    解释器模式(Interpreter Pattern):是一种行为型设计模式,它可以用来解决一些特定问题,例如编译器、计算器等等。这种模式定义了一个语言的语法,并用一个解释器来解释语言中的表达式。 解释器模式可以用来处理例如数据格式化、表单验证等业务场景。在这些场景中,我们需要定义一些语法规则,然后使用解释器来解释这些规则。 解释器模式的基本结构包括四个角色:…

    JavaScript 2023年4月18日
    00
  • Ajax 传递JSON实例代码

    下面是针对“Ajax传递JSON实例代码”的完整攻略。 1. 什么是Ajax传递JSON Ajax传递JSON指的是在使用Ajax技术进行数据传递时,传递的数据格式是JSON。Ajax技术在Web开发中被广泛应用,通过异步请求实现前端和后端的数据交互,可以实现无刷新页面的交互效果。 在传递JSON数据时,通常使用Ajax的POST方法将数据传输给后端,后端再…

    JavaScript 2023年6月11日
    00
  • JavaScript 图像动画的小demo

    让我来详细讲解一下“JavaScript 图像动画的小demo”的完整攻略。 1. 设计思路 通过 Canvas 创建动画效果,可以将图形动态地展示到网页上。这个小demo的设计思路就是以一只小乌龟为例,讲解如何使用 Canvas 创建动画效果。主要有以下几个步骤: 创建 Canvas 元素 获取 Canvas 画布的上下文 加载乌龟图片资源 设置画布宽高和…

    JavaScript 2023年6月10日
    00
  • 国外的为初学者写的JavaScript教程

    下面我将为您详细讲解如何学习“国外的为初学者写的JavaScript教程”。 一、寻找合适的教程网站 在寻找JavaScript教程网站时,您可以通过搜索引擎来寻找。以下是几个优秀的JavaScript教程网站,推荐大家参考: MDN Web 文档:MDN Web 文档是一个权威的Web技术文档网站。该网站的JavaScript教程适合初学者学习,并有逐步深…

    JavaScript 2023年6月10日
    00
  • BootStrap智能表单demo示例详解

    下面是 “BootStrap智能表单demo示例详解” 的完整攻略: 前言 在前后端分离的项目中,表单是不可或缺的一部分。如何在前端中实现一个智能表单,可以提高用户的填写效率和体验,本文介绍了如何使用 Bootstrap 实现智能表单的演示示例。 准备工作 在开始之前,我们需要先引入 Bootstrap 和 jQuery 库。当然,您也可以使用 CDN 进行…

    JavaScript 2023年6月10日
    00
  • JavaScript面试技巧之数组的一些不low操作

    我来详细讲解一下JavaScript面试技巧之数组的一些不low操作的攻略。 一、数组基础 在JavaScript中,数组是一种高效的数据结构,它是由一组按照顺序排列的值组成的集合。数组中的每个值都有一个索引,索引从0开始,依次递增1。 我们可以使用以下代码定义一个简单的数组: const arr = [1, 2, 3, 4, 5]; 二、数组的增删改查 1…

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