2024年Web前端最全最详细的JS动态创建表格以及实现分页!(1),2024年最新程序员面试题及答案

最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

❤️ 谢谢支持,喜欢的话别忘了 关注、点赞哦。

前端校招面试题精编解析大全

    跳转

    直接复制html代码然后把注释的放开就是图一的效果了,

    生成表格

    =================================================================

    写完了静态的html,那么接下来先渲染表格,这是表格的html代码

    小区编码 小区名称

    因为要动态获取表格的高度所以外面加了个盒子。

    这是动态生成表格高度的代码

    let tableHeight = document.getElementById(“table-box”)

    tableHeight.style.height = data.length * 30(每条数据的高度)+ 40(thead的高度) + “px” //data.length为每页有多少条数据。

    接下来动态生成表格的js代码

    for (let i = 0; i < data.length; i++) { //data为后端返回的数据

    var html = “”;

    html += `

    <input type=“radio” class=“check-radio” name=“radio-group”

    data-isCheck=“${data[i].id == tableList.id ? ‘isCheck’ : ‘’}” >

    ${data[i].id} ${data[i].Name} `;

    $(‘#tbody’).append(html);

    $(‘input[data-isCheck=“isCheck”]’).attr(“checked”, true); //true为选择,false为取消选择

    }

    生成了表格后的页面

    在这里插入图片描述

    单选框选择触发事件用这个方法

    // 根据单选框触发是否提交事件!

    $(‘input:radio.check-radio’).change(function () {

    console.log(this) //里面自己写需要的功能

    })

    搜索功能

    =================================================================

    接下来搜索功能,在主函数中定义searchList()这个方法

    searchList() {

    let searchInput = document.getElementById(“search-input”)

    searchInput.addEventListener(“keyup”, function (event) { //搜索用的键盘回车事件

    event.preventDefault();

    let searchValue = $(“#search-input”).val()

    if (event.keyCode === 13) {

    let data = searchValue

    getTableList(data, 1) //getTableList为表格查询请求接口的方法

    }

    });

    },

    这里就实现了搜索功能,效果看图

    在这里插入图片描述

    表格下面的功能

    ====================================================================

    接下来实现表格下面的功能,html代码

      跳转

      实现之前要先定义一个对象来储存页码信息

      var pageList= { //不要在意名字===/_/

      pageNo: 1, //当前页

      pageSize: 10, //一页多少条,我这里写死了的没有涉及到改变展示页数

      pageCount: 0, //总共多少条

      pageTotal: 0, //总共多少页

      pagingShowNum: [] //展示的页码数组成的数组

      };

      var newPagingShowNum=[] //定义一个新的页码数组成的数组,来装页码

      并在请求到后端返回的接口数据中初始化pageObj 对象

      pageList.pageNo = data.pageNum //当前页

      pageList.pageCount = data.count //总共多少条数据

      pageList.pageTotal = Math.ceil(pageList.pageCount / pageList.pageSize) //总共多少页

      左下的页码展示


      实现动态生成左下的页码展示

      $(“#page-text”).append(`

      当前第KaTeX parse error: Expected 'EOF', got '#' at position 48: … style="color: #̲a2a2a2">{pageList.pageCount}条,共${pageList.pageTotal}页

      `)

      效果图

      在这里插入图片描述

      分页


      接下来实现分页,分页有点复杂,当显示到中间时效果如图

      在这里插入图片描述

      因为我做的分页只展示四条数据,涉及到小于五条与大于四条分页时两种情况。

      定义pagingShowNum

      if (pageList.pageTotal <= 5) {

      for (let i = 0; i < pageList.pageTotal; i++) {

      pageList.pagingShowNum[i] = i + 1

      }

      } else {

      for (let i = 0; i < 4; i++) { //最长显示五页

      pageList.pagingShowNum[i] = i + 1

      }

      pageList.pagingShowNum[pageList.pagingShowNum.length - 1] = pageList.pageTotal

      }

      动态生成分页的js代码

      if (pageList.pageTotal <= 5) {//小于五条的情况

      $(“.pagination”).append(`

      • «

      • 1
      • »

        `)

        for (let i = 1; i < pageList.pagingShowNum.length; i++) {

        if (pageList.pagingShowNum[i]) {

        $(“#page-div”).append(`

        ${pageList.pagingShowNum[i]}

        `)

        }

        }

        } else { }//大于四条的情况

        当页数大于4条时就要考虑生成…来隐藏没有展示的代码

        $(“.pagination”).append( `

      • «

      • 1
      • ${pageList.pageTotal}
      • »

        `)

        $(‘#page-div’).after(`

      • ...
      • `); //右边省略号

        $(‘#page-div’).before(`

      • ...
      • `); //左边省略号

        for (let i = 1; i < pageList.pagingShowNum.length - 1; i++) {

        if (newPagingShowNum.length != 0) {

        pageList.pagingShowNum[1] = newPagingShowNum[1]

        pageList.pagingShowNum[2] = newPagingShowNum[2]

        $(“#page-div”).append(`

        ${pageList.pagingShowNum[i]}`)

        } else {

        if (pageList.pagingShowNum[i]) {

        $(“#page-div”).append(`

        ${pageList.pagingShowNum[i]}

        `)

        }

        }

        }

        if (pageList.pagingShowNum[2] < 4) {

        $(“.ellipsis-left”).hide() //中间页面小于4,左边省略号隐藏

        }

        if (pageList.pagingShowNum[2] > pageList.pageTotal - 2) {

        $(“.ellipsis-right”).hide() //中间页面大于最大页码-2,右边省略号隐藏

        }

        右边省略号展开

        $(“.ellipsis-right”).on(“click”, function () {

        $(“#page-div”).empty()

        if (pageList.pagingShowNum[2] < pageList.pageTotal - 2) {

        pageList.pagingShowNum[1] = pageList.pagingShowNum[1] + 2

        pageList.pagingShowNum[2] = pageList.pagingShowNum[2] + 2

        } else { //点到最右边是[1,…,total-2,total-1,total]

        pageList.pagingShowNum[1] = pageList.pageTotal - 2

        pageList.pagingShowNum[2] = pageList.pageTotal - 1

        $(“.ellipsis-right”).hide()

        }

        if (pageList.pagingShowNum[2] == pageList.pageTotal - 1) {

        $(“.ellipsis-right”).hide()

        }

        if (pageList.pagingShowNum[1] > 3) {

        $(“.ellipsis-left”).show()

        }

        for (let i = 1; i < pageList.pagingShowNum.length - 1; i++) {

        if (pageList.pagingShowNum[i]) {

        $(“#page-div”).append(`

        ${pageList.pagingShowNum[i]}

        `)

        }

        }

        前端框架

        前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。

        以 Vue 为例,我整理了如下的面试题。

        Vue部分截图

        如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

        }

        for (let i = 1; i < pageList.pagingShowNum.length - 1; i++) {

        if (pageList.pagingShowNum[i]) {

        $(“#page-div”).append(`

        ${pageList.pagingShowNum[i]}

        `)

        }

        }

        前端框架

        前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。

        以 Vue 为例,我整理了如下的面试题。

        Vue部分截图

        如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

      • 8
        点赞
      • 14
        收藏
        觉得还不错? 一键收藏
      • 0
        评论
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

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

      抵扣说明:

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

      余额充值