javascript - 如何在jquery中的分页号之间添加点(省略号)
问题描述
我有一个用于分页编号的预生成 html,它基本上来自后端 CMS,基于存在的项目数 html 看起来像这样
<p class="pagination-numbers">
<a class="" href="/content/go2bank/en/blogs/blog-list-page-1.html"> 1 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.2.html"> 2 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.3.html"> 3 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.4.html"> 4 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.5.html"> 5 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.6.html" class="active"> 6 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.7.html"> 7 </a>
</p>
页数可能会根据项目的数量而增加,因此目前数字显示全部(例如:1 2 3 4 5 6 7)
我希望它不显示所有数字,而是显示一些数字,即前几个数字,然后用“...”替换其余数字,最后一个应该显示。
我希望分页看起来和表现得像这样
Selected page 1: [1, 2, 3, 4, "...", 20]
selected page 2: [1, 2, 3, 4, "...", 20]
selected page 3: [1, 2, 3, 4, "...", 20]
selected page 4: [1, "...", 3, 4, 5, "...", 20]
selected page 5: [1, "...", 4, 5, 6, "...", 20]
.
.
.
.
.
selected page 18:[1, "...", 17, 18 ,19 , 20]
selected page 19:[1, "...", 17, 18 ,19 , 20]
selected page 20:[1, "...", 17, 18 ,19 , 20]
提前致谢
解决方案
像这样的东西?
const act = $(".pagination-numbers a.active").index()
$(".pagination-numbers a:visible").each(function() {$(this).after('<span>.</span>') })
$(".pagination-numbers a:lt("+(act-1)+")").hide(); // one before
$(".pagination-numbers a:gt("+(act+1)+")").hide(); // one after
$(".pagination-numbers a:first").show()
$(".pagination-numbers a:last").show()
$(".pagination-numbers span:last").hide()
a { text-decoration: none }
.active {font-weight: bold }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="pagination-numbers">
<a class="" href="/content/go2bank/en/blogs/blog-list-page-1.html"> 1 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.2.html"> 2 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.3.html"> 3 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.4.html"> 4 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.5.html"> 5 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.6.html"> 6 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.7.html" class="active"> 7 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.8.html"> 8 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.9.html"> 9 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.10.html"> 10 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.11.html"> 11 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.12.html"> 12 </a>
<a href="/content/go2bank/en/blogs/blog-list-page-1.13.html"> 13 </a>
</p>
推荐阅读
- arrays - 如何将变量二维数组作为参数传递给线程函数
- elasticsearch - 查询以获取按类别排名排序的最受欢迎的产品
- mysql - 如何在 MySQL 中对空间索引进行分区或将其与 BTREE 索引结合使用?
- logging - 我的日志消息有问题,我无法解决
- rust - 如何使用 Cargo 用路径修补 crates-io?
- node.js - 来自 Postman 和 Node 的 HTTP 请求,但不是 React
- scala - Spark (Scala) 修改数据集列的内容
- python - OverflowError: (34, 'Numerical result out of range') 使用 PyTorch 学习率调度程序
- opencart - 在 Opencart V 3.0.3.0 中提交注册表时显示所有错误
- mysql - 计算日期之间