当前位置: 首页 > news >正文

【js】js实现分页02

实现效果

在这里插入图片描述

代码

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>列表和分页01</title>
    <style>
        #myTable {
            width: 100%;
            border-collapse: collapse;
        }

        #myTable td {
            border: 1px solid #666;
            padding: 8px;
        }

        .page {
            padding-top: 10px;
            width: 260px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
        }

        .page button {
            padding: 5px;
        }
        .border {
            border: 1px solid #666;
        }
    </style>
</head>

<body>
    <div class="main">
        <table id="myTable"></table>
        <div class="page">
            <button type="button" id="pageUp" onclick="prev()">上一页</button>
            <button type="button" id="pageDown" onclick="next()">下一页</button>
        </div>
        <div id="page2"></div>
        <div id="page3"></div>
    </div>
    <script>
        var myTable = document.getElementById('myTable')
        var prevBtn = document.getElementById("pageUp")
        var nextBtn = document.getElementById("pageDown")
        var dataAll = [{
            name: '01wangjie',
            age: 1,
            like: '足球'
        }, {
            name: '02wangjie',
            age: 2,
            like: '足球'
        }, {
            name: '03wangjie',
            age: 3,
            like: '足球'
        }, {
            name: '04wangjie',
            age: 4,
            like: '足球'
        }, {
            name: '05wangjie',
            age: 5,
            like: '足球'
        }, {
            name: '06wangjie',
            age: 6,
            like: '足球'
        }, {
            name: '07wangjie',
            age: 7,
            like: '足球'
        }, {
            name: '08wangjie',
            age: 8,
            like: '足球'
        }, {
            name: '09wangjie',
            age: 9,
            like: '足球'
        }, {
            name: '10wangjie',
            age: 10,
            like: '足球'
        }, {
            name: '11wangjie',
            age: 11,
            like: '足球'
        }, {
            name: '12wangjie',
            age: 12,
            like: '足球'
        }, {
            name: '13wangjie',
            age: 13,
            like: '足球'
        }, {
            name: '14wangjie',
            age: 14,
            like: '足球'
        }, {
            name: '15wangjie',
            age: 15,
            like: '足球'
        }, {
            name: '16wangjie',
            age: 16,
            like: '足球'
        },]
        var list = ''
        // 分页
        // 总页数
        var total = dataAll.length;
        // 每页显示数量
        var pageSize = 5;
        // 分了几页
        var page = 1
        // 当前页
        var currentPage = 1
        // 定义全局变量
        tempStr = ''

        // 展示数据
        showData(dataAll)

        if (dataAll.length / pageSize > parseInt(dataAll.length / pageSize)) {
            page = parseInt(dataAll.length / pageSize) + 1
        } else {
            page = dataAll.length / pageSize
        }
        console.log('page', page)

        // 表格显示的数据
        function showData(data) {
            list = []
            data = data.slice(pageSize * (currentPage - 1), currentPage * pageSize)
            data.forEach(item => {
                list = list + `<tr><td>${item.name}</td><td>${item.age}</td><td>${item.like}</td></tr>`
            })
            myTable.innerHTML = list
        }

        //总共分几页
        if (dataAll.length / pageSize > parseInt(dataAll.length / pageSize)) {
            total = parseInt(dataAll.length / pageSize) + 1
        } else {
            total = parseInt(dataAll.length / pageSize)
        }

        //根据情况判断,当currentPage处于第一页、最后一页button按钮不可用
        function btnDisabled() {
            if (currentPage <= 1) {
                prevBtn.disabled = true;
                nextBtn.disabled = false;
            } else if (currentPage >= total) {
                prevBtn.disabled = false;
                nextBtn.disabled = true;
            }
        }

        
        btnDisabled()

        // 上一页
        function prev() {
            currentPage = currentPage - 1
            showData(dataAll)
            btnDisabled()
            document.getElementById("page2").innerHTML = "共" + dataAll.length + "条记录 分" + page + "页 当前第" + currentPage + "页";
        }
        // 下一页
        function next() {
            currentPage = currentPage + 1
            showData(dataAll)
            btnDisabled()
            document.getElementById("page2").innerHTML = "共" + dataAll.length + "条记录 分" + page + "页 当前第" + currentPage + "页";
        }

        //分页详细信息
        tempStr = "共" + dataAll.length + "条记录 分" + page + "页 当前第" + currentPage + "页";
        document.getElementById("page2").innerHTML = tempStr

    </script>
</body>

</html>

相关文章:

  • “结构体名”和“结构体名是个指针”的区别
  • 网课查题api接口使用方法
  • 干货分享|优炫数据库支撑GIS融合的探索
  • 重写DATAGRID控件,当对行编辑后重LOAD后可定位到最后点击的那一行。
  • 基于强化学习的空域作战辅助决策(1D)
  • 【AGC】使用云调试优惠扣费、华为设备上触发崩溃、无法下载华为应用市场问题小结
  • elasticsearch设置密码
  • 大学生制作自己的查题搜题公众号 简单方便
  • 【postgresql 数据库运维文档】
  • 搜题公众号 大学生搭建查题公众号到底有多简单
  • js split , slice, splice 三者区别
  • ATF启动(四):BL31
  • vue3.0实战项目
  • Python采集猫咪数据并做数据可视化图
  • java基于springboot+Vue社区居民医疗健康网站
  • [Vue CLI 3] 配置解析之 css.extract
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ES6之路之模块详解
  • idea + plantuml 画流程图
  • jquery cookie
  • PV统计优化设计
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • vue-cli3搭建项目
  • vue-cli在webpack的配置文件探究
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 搞机器学习要哪些技能
  • 简单数学运算程序(不定期更新)
  • 简析gRPC client 连接管理
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 区块链分支循环
  • elasticsearch-head插件安装
  • 带你开发类似Pokemon Go的AR游戏
  • (function(){})()的分步解析
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET MVC第三章、三种传值方式
  • .net实现客户区延伸至至非客户区
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @font-face 用字体画图标
  • [20140403]查询是否产生日志
  • [20190401]关于semtimedop函数调用.txt
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [Android]一个简单使用Handler做Timer的例子
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C++]打开新世界的大门之C++入门
  • [codeforces] 25E Test || hash
  • [dart学习]第四篇:函数
  • [docker] Docker的私有仓库部署——Harbor
  • [ffmpeg] av_opt_set 解析
  • [java后端研发]——文件上传与下载(2种方式)