【发布时间】:2016-10-13 12:06:18
【问题描述】:
我正在尝试在纯 Javascript 中创建动态分页。 我遇到了几个障碍,比如尝试创建动态分页并链接页码以显示正确的项目。这是我正在努力解决的代码,请参阅Codepen 以查看整个项目。
初始变量:
var currentPage = 1;
var numPages = 0;
var studentsPerPage = 10;
var index;
在Js中创建分页:
var paginationFilter = function pageFilter (nbOfEntries) {
var pagination = document.createElement('div');
var ulList = document.createElement('ul');
var liList = document.createElement('li');
var pageLink = document.createElement('a');
pagination.setAttribute("class", "pagination");
pageLink.setAttribute("class", "navlink");
pageLink.setAttribute("href", "#");
pagination.appendChild(ulList);
ulList.appendChild(liList);
liList.appendChild(pageLink);
return pagination; };
以下是我的函数来查找我的学生列表的长度、查找要创建的页数、隐藏所有元素并仅显示我列表中的前 10 个项目。其他项目应在下一页。
var numberOfStudents = function () {
var numberOfStudents = eachStudent.length;
return (numberOfStudents);}
//Finding the number of pages
var numberOfPages = function () {
var numberOfPages = parseInt(numberOfStudents() / studentsPerPage);
if ( numberOfStudents() % studentsPerPage > 0 ){
numPages += 1;
}
return numberOfPages;
}
//Hiding all the students
var hideAll = function () {
for (var i = 0; i < numberOfStudents(); i++) {
eachStudent[i].style.display = "none";
}
};
//Display only the 10 first items on the page
function showStudents (number) {
for (var i = 0; i < studentsPerPage; i++) {
index = number * studentsPerPage - studentsPerPage + i;
eachStudent[index].style.display = "block";
console.log(index);
}
};
function createPages () {
for (var i = 0; i <= numberOfPages(); i++) {
page.appendChild(paginationFilter());
var navlink = document.getElementsByClassName(".navlink");
var linkText = document.createTextNode(i);
//i'm trying to append the node to the link in order to create the pagination links dynamically but it's not working...
navlink.appendChild('linkText');
console.log(linkText);
}
};
所以我想知道如何根据列表中的项目数动态创建分页。这些项目也是动态过滤的,因此需要更新“实时”的页面数。
小提琴链接:http://codepen.io/Delano83/pen/XjYxkQ
感谢您对我的代码的任何评论或 cmets!
【问题讨论】:
-
为什么要重新造轮子?试试 bootstrap 或像这样的 jQuery 插件...flaviusmatis.github.io/simplePagination.js
-
我只需要使用纯 Js :) 感谢您的输入!
标签: javascript pagination