You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现分页导航(当前页码显示)?解决旧页码未清除问题

分页导航当前页码更新异常问题解决

问题描述

想要实现形如1/5、2/5、3/5……的分页导航:

  • 左侧数字为当前页码
  • 右侧数字为总页码

目前幻灯片切换功能正常,但当前页码更新时会追加新数字,旧值未被清除,比如多次点击按钮后会出现12/5、123/5这类错误显示。

问题原因

原代码中使用current.append(i + 2)更新当前页码,append()方法是将内容追加到元素内部,而非替换原有内容,导致每次点击都会在旧数字后叠加新数字。

修复方案

将append()替换为textContent属性赋值,直接覆盖元素原有内容;同时移除未定义的sliceAll()调用,避免报错。

修复后的完整代码

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div class="items">
    <div class="item active">111</div>
    <div class="item">222</div>
    <div class="item">333</div>
    <div class="item">444</div>
    <div class="item">555</div>
  </div>
  <br>
  <div class="nav">
    <span class="current">1</span> / 
    <span class="total"></span>
  </div>
  <br>
  <button class="btn" type="button">Next</button>
</body>
</html>

CSS

.item {
  display: none;
}
.item.active {
  display: block;
}

JavaScript

// slides
let item = document.querySelectorAll('.item');
let btn = document.querySelector('.btn');
let el_active;

let current = document.querySelector('.current');
let total = document.querySelector('.total');

function navigate() {
    for (let i = 0, length = item.length; i < length; i++) {
        if (item[i].classList.contains('active')) {
            el_active = i;
            // 替换append为textContent,直接覆盖原有内容
            current.textContent = i + 2;        
            break;
        }
    }
    item.forEach(function(tab) {
        tab.classList.remove('active');
    });
    if ((el_active + 1) === item.length) {
        item[0].classList.add('active');
        // 回到第一页时,重置当前页码为1
        current.textContent = 1;
    } else {
        item[el_active + 1].classList.add('active');
    }
}

btn.addEventListener('click', function() {
    navigate();
    // 移除未定义的sliceAll()调用
});

let all = item.length;
// 用textContent设置总页码,更稳妥
total.textContent = all;

额外优化说明

  • 当切换到最后一页后点击按钮回到第一页时,手动将当前页码重置为1,保证逻辑闭环;
  • 总页码使用textContent赋值,避免后续如果有更新操作时出现重复追加的问题。

内容的提问来源于stack exchange,提问作者Stan Law

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 13:10:28