Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
链接的javascript分页_Javascript_Pagination - Fatal编程技术网

链接的javascript分页

链接的javascript分页,javascript,pagination,Javascript,Pagination,我正在尝试为我的链接创建一个简单的javascript分页(仅限于前面的下一个按钮) var当前页面=1; 每页var记录=5; 函数prevPage() { 如果(当前页面>1){ 当前_页--; 更改页面(当前页面); } } 函数下一页() { 如果(当前页面

我正在尝试为我的
  • 链接创建一个简单的javascript分页(仅限于前面的下一个按钮)

    var当前页面=1;
    每页var记录=5;
    函数prevPage()
    {
    如果(当前页面>1){
    当前_页--;
    更改页面(当前页面);
    }
    }
    函数下一页()
    {
    如果(当前页面numPages())page=numPages();
    对于(var i=(第1页)*每页记录数;i<(第页*每页记录数)和&i
    
    
    
    • //链接的数量是无限的。
    两个问题:

  • 您仅在
    changePage
    中定义了
    ,但在其他地方使用了它。我将声明移动到全局范围
  • 您设置了应该对
    display:block
    可见的元素,但未能设置应该对
    display:none
    不可见的元素。我将
    changePage
    中的
    for
    循环更改为同时执行这两项操作
  • 以下代码按预期工作:

    var当前页面=1;
    每页var记录=5;
    var items=document.queryselectoral(“Mylinks li”);
    函数prevPage()
    {
    如果(当前页面>1){
    当前_页--;
    更改页面(当前页面);
    }
    }
    函数下一页()
    {
    如果(当前页面numPages())page=numPages();
    对于(变量i=0;i=(第1页)*每页记录&&
    i<第页*记录每页){
    项目[i].style.display=“块”;
    }否则{
    项目[i].style.display=“无”;
    }
    }
    如果(第==1页){
    btn_prev.style.visibility=“隐藏”;
    }否则{
    btn_prev.style.visibility=“可见”;
    }
    如果(页面==numPages()){
    btn_next.style.visibility=“隐藏”;
    }否则{
    btn_next.style.visibility=“可见”;
    }
    }
    函数numPages()
    {
    返回Math.ceil(items.length/每页记录);
    }
    window.onload=函数(){
    更改页面(1);
    };
    
    
    
    两个问题:

  • 您仅在
    changePage
    中定义了
    ,但在其他地方使用了它。我将声明移动到全局范围
  • 您设置了应该对
    display:block
    可见的元素,但未能设置应该对
    display:none
    不可见的元素。我将
    changePage
    中的
    for
    循环更改为同时执行这两项操作
  • 以下代码按预期工作:

    var当前页面=1;
    每页var记录=5;
    var items=document.queryselectoral(“Mylinks li”);
    函数prevPage()
    {
    如果(当前页面>1){
    当前_页--;
    更改页面(当前页面);
    }
    }
    函数下一页()
    {
    如果(当前页面numPages())page=numPages();
    对于(变量i=0;i=(第1页)*每页记录&&
    i<第页*记录每页){
    项目[i].style.display=“块”;
    }否则{
    项目[i].style.display=“无”;
    }
    }
    如果(第==1页){
    btn_prev.style.visibility=“隐藏”;
    }否则{
    btn_prev.style.visibility=“可见”;
    }
    如果(页面==numPages()){
    btn_next.style.visibility=“隐藏”;
    }否则{
    btn_next.style.visibility=“可见”;
    }
    }
    函数numPages()
    {
    返回Math.ceil(items.length/每页记录);
    }
    window.onload=函数(){
    更改页面(1);
    };
    
    
    

    我想smarx的答案是正确的,但我还是发布了这个答案

    var
    
    var current_page = 1;
    var records_per_page = 5;
    var items = document.querySelectorAll("#MypLinkbox li");
    
    function prevPage() {
        if (current_page > 1) {
            current_page--;
            changePage(current_page);
        }
    }
    
    function nextPage() {
        if (current_page < numPages()) {
            current_page++; 
            changePage(current_page);
        }
    }
    
    function changePage(page) {
        var btn_next = document.getElementById("btn_next");
        var btn_prev = document.getElementById("btn_prev");
    
        // Validate page
        if (page < 1) page = 1;
        if (page > numPages()) page = numPages();
    
        // hide all
        for (var i = 0; i < items.length; i++){
           items[i].style.display = "none";
        }
    
        for (var i = (page-1) * records_per_page; i < (page * records_per_page) && i < items.length; i++) {
           items[i].style.display = "block";
        }
    
        if (page == 1) 
            btn_prev.style.visibility = "hidden";
        else 
            btn_prev.style.visibility = "visible";
    
        if (page == numPages())
            btn_next.style.visibility = "hidden";
        else 
            btn_next.style.visibility = "visible";
    
    }
    
    function numPages() {
        return Math.ceil(items.length / records_per_page);
    }
    
    window.onload = function() {
        changePage(1);
    };