Javascript 我已经在html中创建了自定义分页,我的“上一页”和“下一页”按钮不起作用

Javascript 我已经在html中创建了自定义分页,我的“上一页”和“下一页”按钮不起作用,javascript,html,pagination,Javascript,Html,Pagination,frontarrow的js代码已编写,但只显示第二个记录页 <!DOCTYPE html> <html lang="en" > <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1.0"/>

frontarrow的js代码已编写,但只显示第二个记录页

<!DOCTYPE html>

<html lang="en" >
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
    <title>
        Records
    </title>
    <link rel="stylesheet" href="StyleSheet2.css" />
</head>
<body>
    <main>
        
        <div class="list" id="list"></div>
        <container class="container " id="containerPager">
            <button class="button" id="buttonFrontArrow">>></button>
            <button class="button" id="buttonThreeDots">...</button>
            <div class="pagenumbers" id="pagination">


            </div>

            <button class="button" id="buttonBackArrow"><<</button>
            <button id="ShowingRecords"></button>
        </container>

    </main>
    <script >// JavaScript source code
        const ArrowBack = document.getElementById('buttonBackArrow');
        const ArrowFront = document.getElementById('buttonFrontArrow');


const list_items = ["item1", "item2", "item3", "item1", "item2", "item3", "item2", "item3", "item1", "item2", "item3","item10"];
const list_element = document.getElementById('list');
const pagination_element = document.getElementById('pagination');
let current_page = 1;
let rows = 2;
function DisplayList(items, wrapper, rows_per_page, page) {
    wrapper.innerHTML = "";
    page--;
    let start = rows_per_page * page;
    
    let end = start + rows_per_page;
    let paginatedItems = items.slice(start, end);

    for (let i = 0; i < paginatedItems.length; i++) {
        let item = paginatedItems[i];
        let item_element = document.createElement('div');
        item_element.classList.add('item');
        item_element.innerText = item;
        wrapper.appendChild(item_element);

    }
    const ShowingRecords = document.getElementById('ShowingRecords');

    ShowingRecords.innerHTML = "Showing Records " + (start+1) + " to " + end + " of " + (items.length );


        }
        function SetupPagination(items, wrapper, rows_per_page) {
            wrapper.innerHTML = "";
            let page_count = Math.ceil(items.length / rows_per_page) + 1;
            
            for (let i = page_count-1; i >0; i--) {
                let btn = PaginationButton(i,items);
                wrapper.appendChild(btn);
            }

        }
        function PaginationButton(page,items) {
            let button = document.createElement('button');
            button.innerText = page;
            if (current_page == page) {
                button.classList.add('active');
            }


           
            button.addEventListener('click', function () {
                current_page = page;
                DisplayList(items, list_element, rows, current_page);
                let current_btn = document.querySelector('.pagination button.active');
                current_btn.classList.remove('active');
                button.classList.add('active');


            });
            ArrowFront.addEventListener('click', function () {

                current_page = page;
                let current_pageArr = current_page + 1;

                DisplayList(items, list_element, rows, current_pageArr);
                 let current_btn = document.querySelector('.pagination button.active');
                current_btn.classList.remove('active');
                   button.classList.add('active');
                   current_pageArr = current_pageArr + 1;

            });
            return button;

        }
        DisplayList(list_items, list_element, rows, current_page);
        SetupPagination(list_items, pagination_element, rows);

    </script>
</body>
</html>

记录
>>
...

只需将单击事件箭头设置一次。由于它位于函数内部,因此每次调用函数时都会使用不同的值对其进行设置。这是剧本的修订版

<script>// JavaScript source code
    
    const ArrowBack = document.getElementById('buttonBackArrow');
    const ArrowFront = document.getElementById('buttonFrontArrow');

    const list_items = ["item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8", "item9", "item10", "item11", "item12"];
    const list_element = document.getElementById('list');
    const pagination_element = document.getElementById('pagination');
    
    let current_page = 1;
    let rows = 2;
    let max_page = Math.ceil(list_items.length / rows);

    ArrowFront.addEventListener('click', function () {

        if(current_page < max_page){
            current_page++;
            DisplayList(list_items, list_element, rows, current_page);
        }

    });

    ArrowBack.addEventListener('click', function () {

        if(current_page > 1){
            current_page--;
            DisplayList(list_items, list_element, rows, current_page);
        }

    });

    function DisplayList(items, wrapper, rows_per_page, page) {
        console.log(page);
        wrapper.innerHTML = "";
        page--;
        
        let start = rows_per_page * page;
        let end = start + rows_per_page;

        let paginatedItems = items.slice(start, end);

        console.log(start, end)
        console.log('paginatedItems', paginatedItems)

        for (let i = 0; i < paginatedItems.length; i++) {
            let item = paginatedItems[i];
            let item_element = document.createElement('div');
            item_element.classList.add('item');
            item_element.innerText = item;
            wrapper.appendChild(item_element);

        }
        const ShowingRecords = document.getElementById('ShowingRecords');

        ShowingRecords.innerHTML = "Showing Records " + (start + 1) + " to " + end + " of " + (items.length);

    }

    function SetupPagination(items, wrapper, rows_per_page) {
        wrapper.innerHTML = "";
        let page_count = Math.ceil(items.length / rows_per_page) + 1;

        for (let i = page_count - 1; i > 0; i--) {
            let btn = PaginationButton(i, items);
            wrapper.appendChild(btn);
        }

    }
    
    function PaginationButton(page, items) {
        
        let button = document.createElement('button');
        button.innerText = page;
        if (current_page == page) {
            button.classList.add('active');
        }

        button.addEventListener('click', function () {
            current_page = page;
            DisplayList(items, list_element, rows, current_page);
            let current_btn = document.querySelector('.pagination button.active');
            current_btn.classList.remove('active');
            button.classList.add('active');


        });

        
        return button;

    }
    
    
    DisplayList(list_items, list_element, rows, current_page);
    SetupPagination(list_items, pagination_element, rows);

</script>
//JavaScript源代码
const ArrowBack=document.getElementById('buttonBackArrow');
const ArrowFront=document.getElementById('buttonFrontArrow');
const list_items=[“item1”、“item2”、“item3”、“item4”、“item5”、“item6”、“item7”、“item8”、“item9”、“item10”、“item11”、“item12”];
const list_element=document.getElementById('list');
const paginationu element=document.getElementById('pagination');
让当前页面=1;
设行数=2;
让max_page=Math.ceil(list_items.length/行);
ArrowFront.addEventListener('click',函数(){
如果(当前页面<最大页面){
当前页面++;
显示列表(列表项、列表元素、行、当前页面);
}
});
ArrowBack.addEventListener('click',函数(){
如果(当前页面>1){
当前_页--;
显示列表(列表项、列表元素、行、当前页面);
}
});
函数显示列表(项目、包装、每页行、每页){
控制台日志(第页);
wrapper.innerHTML=“”;
第页--;
开始=每页行数*页数;
让结束=开始+每页行数;
让paginatedItems=items.slice(开始、结束);
console.log(开始、结束)
console.log('paginatedItems',paginatedItems)
for(设i=0;i0;i--){
设btn=分页按钮(i,项目);
appendChild(btn);
}
}
功能分页按钮(页面,项目){
let button=document.createElement('button');
button.innerText=页面;
如果(当前页面==第页){
button.classList.add('active');
}
按钮。addEventListener('click',函数(){
当前页面=第页;
显示列表(项目、列表元素、行、当前页面);
让current_btn=document.querySelector('.pagination button.active');
当前_btn.classList.remove('active');
button.classList.add('active');
});
返回按钮;
}
显示列表(列表项、列表元素、行、当前页面);
设置分页(列表项、分页元素、行);