js实现无刷新分页

这个博客展示了如何使用JavaScript实现一个简单的前端分页功能。通过创建HTML结构、定义样式和编写JavaScript代码,实现了根据数据总量、每页显示条数动态生成分页导航,并在点击页码时切换显示相应页的数据。示例中,数据是一组预生成的文本条目,通过计算得出总页数并绑定点击事件来更新内容区域的数据展示。
<!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>Document</title>
    <style>
      #page a {
        padding: 10px;
        border: 1px solid #ccc;
        margin: 10px;
      }
    </style>
  </head>
  <body>
    <div id="content"></div>
    <!-- 分为一个内容,以及页码 -->
    <div id="page"></div>
    <script>
      var data = []; //已有的数据
      var total = 101; //数据总条数
      var perPage = 10; //每页显示的条数
      for (var i = 1; i <= total; i++) {
        data.push("我是第" + i + "条数据");
      }
      //   首先生成101条数据
      // 生成出分页导航 并且实现 每个数字页点击更换对应的的数据 点击事件使用行内绑定
      var totalPage = Math.ceil(total / perPage);
      // 1、显示分页导航
      var html = "";
      for (var i = 1; i <= totalPage; i++) {
        // javascript:; 表示执行js的空代码  可以将js代码设置在:;直接 可以避免a标签的点击刷新页面
        html +=
          '<a href ="javascript:;" onclick = "changePage(' +
          i +
          ')">S' +
          i +
          "</a>";
      }
      document.querySelector("#page").innerHTML = html;
      // 上面是生成分页
      // 显示指定页数的对应的数据
      function changePage(page) {
        if (page <= 0 || page > totalPage) {
          return;
        }
        var html = "";
        // 这里有一个重置的操作。如果不重置的话就不要再这里加
        /*
                page = 1 显示数据下标为0-10直接的数据
                page = 2 显示数据下标为10-20直接的数据
                page = 3 显示数据下标为20-30直接的数据
                page = n 显示数据下标为 (n-1) * perPage - n*perPage
            */
        //    page = 11 下标从100 - 110之间
        // 计算结束的下标
        var endIndex = page * perPage < total ? page * perPage : total;
        for (var i = (page - 1) * perPage; i < endIndex; i++) {
          html += "<p>" + data[i] + "</p>";
        }

        document.querySelector("#content").innerHTML = html;
      }
      changePage(1);
    </script>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值