如何用JavaScript实现前端长尾词搜索的分页功能?

2026-04-05 08:4711阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计491个文字,预计阅读时间需要2分钟。

如何用JavaScript实现前端长尾词搜索的分页功能?

有些项目业务相对简单,但应用到前端分页的地方又比较复杂,尤其是控制插件体积,这让人有些烦恼。因此,自己写一个简单的实现。思路如下:

通过jQuery的`.slice()`方法选择子集的区间元素,然后控制显示的元素。

有些项目业务比较简单,但用到前端分页的地方又比较多,插件的体积比较难控制用起来也麻烦,所以自己写一个简易的。

实现思路

通过 jQuery.slice() 选择子集的区间元素, 然后控制显示隐藏来实现;
假设每页显示数量为x,当前页码为y,元素索引从0开始,那么显示的区间即为 x(y-1) 到 xy。

效果演示

demo代码

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> /** * 分页初始化 * @param {*} eleBox 需要被分页的容器 * @param {*} size 每页的条数 */ function InitPagination(eleBox, size) { var box = $(eleBox), children = box.children(), total = children.length, pageBox = box.next(), pageNum = pageBox.find('.page-num'), maxNum = !Math.ceil(total / size) ? 1 : Math.ceil(total / size); pageNum.text('1/' + maxNum); children.hide(); children.slice(0, size).show(); pageBox.off().on('click', '.prev, .next', function (e) { var nowNum = parseInt(pageNum.text().split('/')[0]); if ($(this).hasClass('prev')) { nowNum--; if (nowNum < 1) { nowNum = 1 return; } } else { nowNum++; if (nowNum > maxNum) { nowNum = maxNum return; } } children.hide(); children.slice(size * (nowNum - 1), nowNum * size).show(); pageNum.text(nowNum + '/' + maxNum); }) } // 模拟数据写入 var box = $('.box'), box2 = $('.box2'), li = ''; for (let i = 0; i < 16; i++) { li += '<li>' + i + '</li>' } box.html(li); box2.html(li); // 实例化分页器 new InitPagination(box, 7) new InitPagination(box2, 3) </script> </body> </html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

如何用JavaScript实现前端长尾词搜索的分页功能?

本文共计491个文字,预计阅读时间需要2分钟。

如何用JavaScript实现前端长尾词搜索的分页功能?

有些项目业务相对简单,但应用到前端分页的地方又比较复杂,尤其是控制插件体积,这让人有些烦恼。因此,自己写一个简单的实现。思路如下:

通过jQuery的`.slice()`方法选择子集的区间元素,然后控制显示的元素。

有些项目业务比较简单,但用到前端分页的地方又比较多,插件的体积比较难控制用起来也麻烦,所以自己写一个简易的。

实现思路

通过 jQuery.slice() 选择子集的区间元素, 然后控制显示隐藏来实现;
假设每页显示数量为x,当前页码为y,元素索引从0开始,那么显示的区间即为 x(y-1) 到 xy。

效果演示

demo代码

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> /** * 分页初始化 * @param {*} eleBox 需要被分页的容器 * @param {*} size 每页的条数 */ function InitPagination(eleBox, size) { var box = $(eleBox), children = box.children(), total = children.length, pageBox = box.next(), pageNum = pageBox.find('.page-num'), maxNum = !Math.ceil(total / size) ? 1 : Math.ceil(total / size); pageNum.text('1/' + maxNum); children.hide(); children.slice(0, size).show(); pageBox.off().on('click', '.prev, .next', function (e) { var nowNum = parseInt(pageNum.text().split('/')[0]); if ($(this).hasClass('prev')) { nowNum--; if (nowNum < 1) { nowNum = 1 return; } } else { nowNum++; if (nowNum > maxNum) { nowNum = maxNum return; } } children.hide(); children.slice(size * (nowNum - 1), nowNum * size).show(); pageNum.text(nowNum + '/' + maxNum); }) } // 模拟数据写入 var box = $('.box'), box2 = $('.box2'), li = ''; for (let i = 0; i < 16; i++) { li += '<li>' + i + '</li>' } box.html(li); box2.html(li); // 实例化分页器 new InitPagination(box, 7) new InitPagination(box2, 3) </script> </body> </html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

如何用JavaScript实现前端长尾词搜索的分页功能?