我正在尝试使用纯JavaScript创建动态分页。我遇到了一些障碍,例如尝试创建动态分页并将页面数字链接到显示正确项目的位置。这是我正在努力解决的代码,请查看Codepen以查看整个项目。
初始变量:
这里是我的函数,用于查找学生名单的长度,计算创建页面的数量,隐藏所有元素并仅显示列表中前10个项目。其他项目应在下一页上显示。
初始变量:
var currentPage = 1;
var numPages = 0;
var studentsPerPage = 10;
var index;
使用JavaScript创建分页:
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
欢迎对我的代码进行任何评论或建议!