【问题标题】:Pagination in vanilla Javascript without any frameworks or libraries没有任何框架或库的 vanilla Javascript 分页
【发布时间】:2021-12-13 02:59:47
【问题描述】:

堆栈溢出!我的任务是创建带有添加和删除内容的选项的可排序/动态表,并且我已经设法做到了。然而,我的最后一项任务是对每页 20 行进行分页,这就是我 10 天的 Javascript 知识受到高度考验的地方。也就是说,我什至不能脚踏实地。

谁能帮我理解分页创建背后的逻辑?

【问题讨论】:

    标签: javascript arrays pagination


    【解决方案1】:

    这里是为每页 20 个元素对表格进行分页的代码:

    用这个编辑函数 loadTableData():

    //Pagination
    function loadTableData(movieData, page_size, page_number) {
      // human-readable page numbers usually start with 1, so we reduce 1 in the first argument
     var movieDatap = movieData.slice((page_number - 1) * page_size, page_number * page_size);
    
          const tableBody = document.getElementById('tableData');
        let txt = '';
        for (let i = 0; i < movieDatap.length; i++) {
        
            txt = txt + `<tr><td>${movieDatap[i].name}</td>
                             <td>${movieDatap[i].genre}</td><td>${movieDatap[i].rating}</td>
                             <td><button onclick="deleteRow(${i});">Delete</button>
                             <button onclick="editRow(${i});">Edit</button></td></tr>`;
                                   
    }                                                     
    
        tableBody.innerHTML = txt;
      
    }
    function decreaseTableDatas(){
    var value = parseInt(document.getElementById('pagenumber').value, 10);
     value = isNaN(value) ? 0 : value;
        value--;
            document.getElementById('pagenumber').value = value;
     loadTableData(movieData, 20, value);
    }
    function incrementTableDatas(){
    var value = parseInt(document.getElementById('pagenumber').value, 10);
     value = isNaN(value) ? 0 : value;
        value++;
            document.getElementById('pagenumber').value = value;
     loadTableData(movieData, 20, value);
    }
    
    window.onload = () => {
        loadTableData(movieData, 20, 1);
    }
    

    用这个更新 HTML:

      <div class="pagination">
         <div class="pagination-block">
            <span class="pageButton outline-none" onclick="decreaseTableDatas()" id="button_prev">Prev</span>
            <input type="button" value="1" id="pagenumber" />
            <span class="pageButton outline-none" onclick="incrementTableDatas()" id="button_next">Next</span>
          </div>
        </div>
    

    我希望这就是你要找的伙伴

    【讨论】:

    • 谢谢,或者我应该说“Hvala ti mnogo!” :) 就是这个。我已经设法在 20 天内理解了 HTML、CSS 和 Bootstrap,我可以在一定程度上使网站的功能齐全,但在过去的 7-8 天里,我一直在努力使用 Javascript。
    • 继续学习,毕竟Javascript是一门编程语言,专注于了解基础知识和一切是如何工作的,从那时起,它会容易很多。如果我的代码符合您的期望,您可以将我的答案标记为该问题的正确答案,这样看到您问题的其他人就会知道:)
    • 如果我的员工有你的耐心就好了 :) 我基本上有一个半月的截止日期来准备项目。再加上我的常规工作..shees,我觉得我的头快要爆炸了:)
    • 兄弟,我感觉到你了,但请耐心等待,一切都会好的,编程很棒,继续前进:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2013-01-02
    • 2018-04-21
    • 1970-01-01
    相关资源
    最近更新 更多