制作表格翻页以及js创建表格

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title><style type="text/css">
    body{
    }
    table .table-striped{
    }
    table th{
        text-align: left;
        height: 30px;
        background: #deeeee;
        padding: 5px;
        margin: 0;
        border: 0px;
    }
    table td{
        text-align: left;
        height:30px;
        margin: 0;
        padding: 5px;
        border:0px
    }
    table tr:hover{
        background: #eeeeee;
    }
    .span6{
        /*width:500px;*/
        float:inherit;
        margin:10px;
    }
    #pagiDiv span{
        background:#1e90ff;
        border-radius: .2em;
        padding:5px;
    }
</style>
    <script type="text/javascript">
        //全局变量
        var numCount;       //数据总数量
        var columnsCounts;  //数据列数量
        var pageCount;      //每页显示的数量
        var pageNum;        //总页数
        var currPageNum ;   //当前页数
        //页面标签变量
        var blockTable;
        var preSpan;
        var firstSpan;
        var nextSpan;
        var lastSpan;
        var pageNumSpan;
        var currPageSpan;

        window.οnlοad=function(){
          var data=[
            {"uid":"2688","uname":"*江苏省南菁高级中学 022","sum":274.23},
            {"uid":"2689","uname":"*江阴国际会展中心管理有限公司 024","sum":0},
            {"uid":"2686","uname":"江苏申利实业股份有限公司 001","sum":7917.94},
            {"uid":"2715","uname":"江阴市吉达针纺有限公司 115","sum":41.39},
            {"uid":"2688","uname":"*江苏省南菁高级中学 022","sum":274.23},
            {"uid":"2689","uname":"*江阴国际会展中心管理有限公司 024","sum":0},
            {"uid":"2686","uname":"江苏申利实业股份有限公司 001","sum":7917.94},
            {"uid":"2715","uname":"江阴市吉达针纺有限公司 115","sum":41.39},
            {"uid":"2688","uname":"*江苏省南菁高级中学 022","sum":274.23},
            {"uid":"2689","uname":"*江阴国际会展中心管理有限公司 024","sum":0},
            {"uid":"2686","uname":"江苏申利实业股份有限公司 001","sum":7917.94},
            {"uid":"2715","uname":"江阴市吉达针纺有限公司 115","sum":41.39},
            {"uid":"2688","uname":"*江苏省南菁高级中学 022","sum":274.23},
            {"uid":"2689","uname":"*江阴国际会展中心管理有限公司 024","sum":0},
            {"uid":"2686","uname":"江苏申利实业股份有限公司 001","sum":7917.94},
            {"uid":"2715","uname":"江阴市吉达针纺有限公司 115","sum":41.39},
            {"uid":"2688","uname":"*江苏省南菁高级中学 022","sum":274.23},
            {"uid":"2689","uname":"*江阴国际会展中心管理有限公司 024","sum":0},
            {"uid":"2686","uname":"江苏申利实业股份有限公司 001","sum":7917.94},
            {"uid":"2715","uname":"江阴市吉达针纺有限公司 115","sum":41.39},
            {"uid":"2688","uname":"*江苏省南菁高级中学 022","sum":274.23},
            {"uid":"2689","uname":"*江阴国际会展中心管理有限公司 024","sum":0},
            {"uid":"2686","uname":"江苏申利实业股份有限公司 001","sum":7917.94},
            {"uid":"2715","uname":"江阴市吉达针纺有限公司 115","sum":41.39},
            {"uid":"2688","uname":"*江苏省南菁高级中学 022","sum":274.23}]
            var table=document.getElementById("blocks");
            for(var i=0;i<data.length;i++){
                var row=table.insertRow(table.rows.length);
                var c1=row.insertCell(0);
                c1.innerHTML=data[i].uid;
                var c2=row.insertCell(1);
                c2.innerHTML=data[i].uname;
                var c3=row.insertCell(2);
                c3.innerHTML=data[i].sum;
            }
            //页面标签变量
            blockTable = document.getElementById("blocks");
            preSpan = document.getElementById("spanPre");
            firstSpan = document.getElementById("spanFirst");
            nextSpan = document.getElementById("spanNext");
            lastSpan = document.getElementById("spanLast");
            pageNumSpan = document.getElementById("spanTotalPage");
            currPageSpan = document.getElementById("spanPageNum");
            numCount = document.getElementById("blocks").rows.length - 1;       //取table的行数作为数据总数量(减去标题行1)
            columnsCounts = blockTable.rows[0].cells.length;
            pageCount = 5;
            pageNum = parseInt(numCount/pageCount);
            if(0 != numCount%pageCount){
                pageNum += 1;
            }
            firstPage();
        };
    </script>
</head>
<body align="center">
<div class="container" align="center" >


    <h2 align="center">Recent blocks Found By AntPool</h2>


    <table id="blocks" class="table table-striped" style="margin-top:25px">
      <tr>
          <th>uid</th>
          <th>uname</th>
          <th>sum</th>
      </tr>

    </table>
    <div id="pagiDiv" align="right" style="width:1200px">
        <span id="spanFirst">First</span>&nbsp;&nbsp;
        <span id="spanPre">Pre</span>&nbsp;&nbsp;
        <span id="spanNext">Next</span>&nbsp;&nbsp;
        <span id="spanLast">Last</span>&nbsp;&nbsp;
        The&nbsp;<span id="spanPageNum"></span>&nbsp;Page/Total&nbsp;<span id="spanTotalPage"></span>&nbsp;Page
    </div>
</div>
<script type="text/javascript">
function firstPage(){
  hide();
  currPageNum = 1;
  showCurrPage(currPageNum);
  showTotalPage();
  for(i = 1; i < pageCount + 1; i++){
      blockTable.rows[i].style.display = "";
  }
  firstText();
  preText();
  nextLink();
  lastLink();
}
function prePage(){
  hide();
  currPageNum--;
  showCurrPage(currPageNum);
  showTotalPage();
  var firstR = firstRow(currPageNum);
  var lastR = lastRow(firstR);
  for(i = firstR; i < lastR; i++){
      blockTable.rows[i].style.display = "";
  }
  if(1 == currPageNum){
      firstText();
      preText();
      nextLink();
      lastLink();
  }else if(pageNum == currPageNum){
      preLink();
      firstLink();
      nextText();
      lastText();
  }else{
      firstLink();
      preLink();
      nextLink();
      lastLink();
  }
}
function nextPage(){
  hide();
  currPageNum++;
  showCurrPage(currPageNum);
  showTotalPage();
  var firstR = firstRow(currPageNum);
  var lastR = lastRow(firstR);
  for(i = firstR; i < lastR; i ++){
      blockTable.rows[i].style.display = "";
  }
  if(1 == currPageNum){
      firstText();
      console.log
      preText();
      nextLink();
      lastLink();
  }else if(pageNum == currPageNum){
      preLink();
      firstLink();
      nextText();
      lastText();
  }else{
      firstLink();
      preLink();
      nextLink();
      lastLink();
  }
}
function lastPage(){
  hide();
  currPageNum = pageNum;
  showCurrPage(currPageNum);
  showTotalPage();
  var firstR = firstRow(currPageNum);
  for(i = firstR; i < numCount + 1; i++){
      blockTable.rows[i].style.display = "";
  }
  firstLink();
  preLink();
  nextText();
  lastText();
}
// 计算将要显示的页面的首行和尾行
function firstRow(currPageNum){
  return pageCount*(currPageNum - 1) + 1;
}
function lastRow(firstRow){
  var lastRow = firstRow + pageCount;
  if(lastRow > numCount + 1){
      lastRow = numCount + 1;
  }
  return lastRow;
}
function showCurrPage(cpn){
  currPageSpan.innerHTML = cpn;
}
function showTotalPage(){
  pageNumSpan.innerHTML = pageNum;
}
//隐藏所有行
function hide(){
  for(var i = 1; i < numCount + 1; i ++){
      blockTable.rows[i].style.display = "none";
  }
}
//控制首页等功能的显示与不显示
function firstLink(){firstSpan.innerHTML = "<a href='javascript:firstPage();'>First</a>";}
function firstText(){firstSpan.innerHTML = "First";}
function preLink(){preSpan.innerHTML = "<a href='javascript:prePage();'>Pre</a>";}
function preText(){preSpan.innerHTML = "Pre";}
function nextLink(){nextSpan.innerHTML = "<a href='javascript:nextPage();'>Next</a>";}
function nextText(){nextSpan.innerHTML = "Next";}
function lastLink(){lastSpan.innerHTML = "<a href='javascript:lastPage();'>Last</a>";}
function lastText(){lastSpan.innerHTML = "Last";}
</script>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作一个具有分页功能的表格组件可以分为以下几个步骤: 1. 创建 HTML 结构 在 HTML 中创建一个表格和两个按钮,一个用于上一页,一个用于下一页。同时,还需要一个显示当前页数的文本框。 ```html <table> <thead> <tr> <th>头1</th> <th>头2</th> <th>头3</th> </tr> </thead> <tbody id="tbody"></tbody> </table> <div> <button id="prev">上一页</button> <span id="current-page"></span> <button id="next">下一页</button> </div> ``` 2. 编写 JavaScript 代码 首先,需要定义一个数组存储表格数据。然后,定义一个 `pageSize` 变量示每页显示的数据条数,以及一个 `currentPage` 变量示当前页数。接着,编写一个 `renderTable` 函数,用于根据当前页数和每页显示的数据条数来渲染表格。最后,给上一页和下一页按钮添加点击事件,用于翻页。 ```javascript const data = [ { col1: '数据1-1', col2: '数据1-2', col3: '数据1-3' }, { col1: '数据2-1', col2: '数据2-2', col3: '数据2-3' }, { col1: '数据3-1', col2: '数据3-2', col3: '数据3-3' }, { col1: '数据4-1', col2: '数据4-2', col3: '数据4-3' }, { col1: '数据5-1', col2: '数据5-2', col3: '数据5-3' }, { col1: '数据6-1', col2: '数据6-2', col3: '数据6-3' }, { col1: '数据7-1', col2: '数据7-2', col3: '数据7-3' }, { col1: '数据8-1', col2: '数据8-2', col3: '数据8-3' }, { col1: '数据9-1', col2: '数据9-2', col3: '数据9-3' }, { col1: '数据10-1', col2: '数据10-2', col3: '数据10-3' }, { col1: '数据11-1', col2: '数据11-2', col3: '数据11-3' }, { col1: '数据12-1', col2: '数据12-2', col3: '数据12-3' }, { col1: '数据13-1', col2: '数据13-2', col3: '数据13-3' }, { col1: '数据14-1', col2: '数据14-2', col3: '数据14-3' }, { col1: '数据15-1', col2: '数据15-2', col3: '数据15-3' } ]; const pageSize = 5; let currentPage = 1; function renderTable() { const tbody = document.getElementById('tbody'); tbody.innerHTML = ''; const start = (currentPage - 1) * pageSize; const end = start + pageSize; const currentData = data.slice(start, end); currentData.forEach(item => { const tr = document.createElement('tr'); tr.innerHTML = ` <td>${item.col1}</td> <td>${item.col2}</td> <td>${item.col3}</td> `; tbody.appendChild(tr); }); const currentPageElem = document.getElementById('current-page'); currentPageElem.innerText = `第 ${currentPage} 页`; } renderTable(); document.getElementById('prev').addEventListener('click', () => { if (currentPage > 1) { currentPage--; renderTable(); } }); document.getElementById('next').addEventListener('click', () => { const totalPages = Math.ceil(data.length / pageSize); if (currentPage < totalPages) { currentPage++; renderTable(); } }); ``` 3. CSS 样式 为了美化表格样式,可以自由地添加 CSS 样式。 ```css table { border-collapse: collapse; width: 100%; margin-bottom: 20px; } table th, table td { border: 1px solid #ddd; padding: 8px; text-align: left; } table th { background-color: #f2f2f2; } button { background-color: #007bff; color: #fff; border: none; padding: 8px 16px; cursor: pointer; border-radius: 4px; margin-right: 10px; } button:hover { background-color: #0069d9; } ``` 这样,就完成了一个具有分页功能的表格组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值