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

首先讲解一下如何使用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日

相关文章

  • JavaScript手机振动API

    JavaScript手机振动API可以在移动设备上实现震动控制,让手机产生震动效果。本攻略将详细介绍如何使用JavaScript实现手机振动。 导入API 要使用JavaScript的手机振动API,需要使用Vibration API,该API基于Promise对象,包含两个方法:vibrate()和cancelVibration()。 要使用Vibrati…

    JavaScript 2023年6月11日
    00
  • 浅谈JS中this在各个场景下的指向

    让我们来详细讲解一下“浅谈JS中this在各个场景下的指向”。 1. this 介绍 在JavaScript中,this 指的是函数执行时所处的上下文对象。或者说,this 指的是调用该函数的对象。 this 可以在不同的环境下有不同的值,它的值取决于它所在的执行上下文。 2. this 在各个场景下的指向 2.1 在全局作用域下 在全局作用域下执行 thi…

    JavaScript 2023年6月10日
    00
  • JavaScript格式化json和xml的方法示例

    下面是“JavaScript格式化json和xml的方法示例”的完整攻略: 一、准备工作 在开始编写JavaScript代码之前,我们需要引入两个库: js-beautify.js: 该库用于美化格式化的代码,包括JSON和XML。 xml2json.js: 该库用于将XML数据转换为JSON数据。 你可以通过以下链接获得这两个库的源代码: js-beaut…

    JavaScript 2023年5月19日
    00
  • javascript dom 基本操作小结

    Javascript DOM 基本操作小结 在编写基于Web的Javascript应用程序时,经常需要对Document Object Model(DOM)进行操作。本文将介绍DOM基本操作的相关知识,并提供一些示例。 什么是DOM? DOM是指文档对象模型(Document Object Model),用于在HTML或XML文档中表示和操作元素。DOM将整…

    JavaScript 2023年6月10日
    00
  • 简单实现JS对dom操作封装

    实现JS对DOM操作的封装一般有如下几个步骤: 1.定义一个构造函数,用于实例化一个操作DOM的对象 2.在该构造函数的原型上,定义一系列方法,用于对DOM进行操作。比如,增加、删除、修改元素的属性、样式等 3.封装一些通用的操作DOM的方法,比如获取元素、遍历元素、判断元素类型等,方便调用者使用 4.用新增的构造函数创建一个实例对象,调用封装好的方法操作D…

    JavaScript 2023年6月10日
    00
  • JS基于FileSaver.js插件实现文件保存功能示例 原创

    c1 简介 本文介绍了如何使用FileSaver.js插件实现Javascript文件保存功能。 FileSaver.js是一个Javascript库,提供了将文件保存到本地的功能。该库主要用于浏览器端,支持多种类型的文件格式,包括文本、CSV、PDF、Image等等。 c2 安装 要使用FileSaver.js插件,需要先将其引入到HTML页面中。可以通过…

    JavaScript 2023年5月27日
    00
  • js如何打印object对象

    下面是关于如何打印JavaScript对象的攻略: 1. 使用console.log输出对象 在JavaScript中,可以使用console.log()方法来输出对象到控制台。这个方法可以接受一个或多个参数,并将它们以逗号分隔的形式打印到控制台。 示例代码: const obj = { name: ‘Alice’, age: 28 } console.lo…

    JavaScript 2023年5月27日
    00
  • 深入理解Ajax的get和post请求

    关于深入理解Ajax的get和post请求,下面是我分享的完整攻略。 理解Ajax 什么是Ajax? Ajax是“Asynchronous JavaScript And XML”的缩写,意思是“异步JavaScript和XML”。 简单来说,Ajax使得Web应用程序可以在不重新加载页面的情况下进行异步通信。 这意味着您可以使用JavaScript向服务器发…

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