javascript-动态分页纯Js
我试图用纯Javascript创建动态分页。 我遇到了一些障碍,比如试图创建动态分页和链接页码以显示正确的项目。这是我正在努力使用的代码,请查看以查看整个项目 初始变量:javascript-动态分页纯Js,javascript,pagination,Javascript,Pagination,我试图用纯Javascript创建动态分页。 我遇到了一些障碍,比如试图创建动态分页和链接页码以显示正确的项目。这是我正在努力使用的代码,请查看以查看整个项目 初始变量: var currentPage = 1; var numPages = 0; var studentsPerPage = 10; var index; 在Js中创建分页: var paginationFilter = function pageFilter (nbOfEntries) { var pagination = d
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);
}
};
var numberOfStudents=函数(){
var numberOfStudents=eachStudent.length;
返回(学生人数);}
//查找页数
var numberOfPages=函数(){
var numberOfPages=parseInt(numberOfStudents()/studentsPerPage);
如果(numberOfStudents()%StudentsPage>0){
numPages+=1;
}
返回页数;
}
//把所有的学生都藏起来
var hideAll=函数(){
对于(var i=0;i 对于(var i=0;i请尝试这个纯javascript实现的代码笔示例
注意:这不是我的代码,只是在codepen上找到的
var Pagination = {
code: '',
// --------------------
// Utility
// --------------------
// converting initialize data
Extend: function(data) {
data = data || {};
Pagination.size = data.size || 300;
Pagination.page = data.page || 1;
Pagination.step = data.step || 3;
},
// add pages by number (from [s] to [f])
Add: function(s, f) {
for (var i = s; i < f; i++) {
Pagination.code += '<a>' + i + '</a>';
}
},
// add last page with separator
Last: function() {
Pagination.code += '<i>...</i><a>' + Pagination.size + '</a>';
},
// add first page with separator
First: function() {
Pagination.code += '<a>1</a><i>...</i>';
},
// --------------------
// Handlers
// --------------------
// change page
Click: function() {
Pagination.page = +this.innerHTML;
Pagination.Start();
},
// previous page
Prev: function() {
Pagination.page--;
if (Pagination.page < 1) {
Pagination.page = 1;
}
Pagination.Start();
},
// next page
Next: function() {
Pagination.page++;
if (Pagination.page > Pagination.size) {
Pagination.page = Pagination.size;
}
Pagination.Start();
},
// --------------------
// Script
// --------------------
// binding pages
Bind: function() {
var a = Pagination.e.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
if (+a[i].innerHTML === Pagination.page) a[i].className = 'current';
a[i].addEventListener('click', Pagination.Click, false);
}
},
// write pagination
Finish: function() {
Pagination.e.innerHTML = Pagination.code;
Pagination.code = '';
Pagination.Bind();
},
// find pagination type
Start: function() {
if (Pagination.size < Pagination.step * 2 + 6) {
Pagination.Add(1, Pagination.size + 1);
}
else if (Pagination.page < Pagination.step * 2 + 1) {
Pagination.Add(1, Pagination.step * 2 + 4);
Pagination.Last();
}
else if (Pagination.page > Pagination.size - Pagination.step * 2) {
Pagination.First();
Pagination.Add(Pagination.size - Pagination.step * 2 - 2, Pagination.size + 1);
}
else {
Pagination.First();
Pagination.Add(Pagination.page - Pagination.step, Pagination.page + Pagination.step + 1);
Pagination.Last();
}
Pagination.Finish();
},
// --------------------
// Initialization
// --------------------
// binding buttons
Buttons: function(e) {
var nav = e.getElementsByTagName('a');
nav[0].addEventListener('click', Pagination.Prev, false);
nav[1].addEventListener('click', Pagination.Next, false);
},
// create skeleton
Create: function(e) {
var html = [
'<a>◄</a>', // previous button
'<span></span>', // pagination container
'<a>►</a>' // next button
];
e.innerHTML = html.join('');
Pagination.e = e.getElementsByTagName('span')[0];
Pagination.Buttons(e);
},
// init
Init: function(e, data) {
Pagination.Extend(data);
Pagination.Create(e);
Pagination.Start();
}
};
/* * * * * * * * * * * * * * * * *
* Initialization
* * * * * * * * * * * * * * * * */
var init = function() {
Pagination.Init(document.getElementById('pagination'), {
size: 30, // pages size
page: 1, // selected page
step: 3 // pages before and after current
});
};
document.addEventListener('DOMContentLoaded', init, false);
var分页={
代码:“”,
// --------------------
//效用
// --------------------
//转换初始化数据
扩展:函数(数据){
数据=数据|{};
Pagination.size=data.size | | 300;
Pagination.page=data.page | | 1;
Pagination.step=data.step | | 3;
},
//按编号添加页面(从[s]到[f])
加:功能(s、f){
对于(var i=s;iPagination.size){
Pagination.page=Pagination.size;
}
Pagination.Start();
},
// --------------------
//剧本
// --------------------
//装订页
绑定:函数(){
var a=Pagination.e.getElementsByTagName('a');
对于(变量i=0;iPagination.size-Pagination.step*2){
分页。第一次();
Pagination.Add(Pagination.size-Pagination.step*2-2,Pagination.size+1);
}
否则{
分页。第一次();
Pagination.Add(Pagination.page-Pagination.step,Pagination.page+Pagination.step+1);
Pagination.Last();
}
Pagination.Finish();
},
// --------------------
//初始化
// --------------------
//绑定按钮
按钮:功能(e){
var nav=e.getElementsByTagName('a');
nav[0]。addEventListener('click',Pagination.Prev,false);
导航[1]。addEventListener('click',分页。Next,false);
},
//创建骨架
创建:函数(e){
变量html=[
“◄;”,//上一个按钮
'',//分页容器
“►;”//下一步按钮
];
e、 innerHTML=html.join(“”);
Pagination.e=e.getElementsByTagName('span')[0];
分页。按钮(e);
},
//初始化
Init:函数(e,数据){
分页扩展(数据);
分页。创建(e);
Pagination.Start();
}
};
/* * * * * * * * * * * * * * * * *
*初始化
* * * * * * * * * * * * * * * * */
var init=函数(){
Pagination.Init(document.getElementById('Pagination'){
大小:30,//页面大小
页面:1,//所选页面
步骤:3//当前页面前后的页面
});
};
document.addEventListener('DOMContentLoaded',init,false);
试试这个纯javascript实现的codepen示例
注意:这不是我的代码,只是在codepen上找到的
var Pagination = {
code: '',
// --------------------
// Utility
// --------------------
// converting initialize data
Extend: function(data) {
data = data || {};
Pagination.size = data.size || 300;
Pagination.page = data.page || 1;
Pagination.step = data.step || 3;
},
// add pages by number (from [s] to [f])
Add: function(s, f) {
for (var i = s; i < f; i++) {
Pagination.code += '<a>' + i + '</a>';
}
},
// add last page with separator
Last: function() {
Pagination.code += '<i>...</i><a>' + Pagination.size + '</a>';
},
// add first page with separator
First: function() {
Pagination.code += '<a>1</a><i>...</i>';
},
// --------------------
// Handlers
// --------------------
// change page
Click: function() {
Pagination.page = +this.innerHTML;
Pagination.Start();
},
// previous page
Prev: function() {
Pagination.page--;
if (Pagination.page < 1) {
Pagination.page = 1;
}
Pagination.Start();
},
// next page
Next: function() {
Pagination.page++;
if (Pagination.page > Pagination.size) {
Pagination.page = Pagination.size;
}
Pagination.Start();
},
// --------------------
// Script
// --------------------
// binding pages
Bind: function() {
var a = Pagination.e.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
if (+a[i].innerHTML === Pagination.page) a[i].className = 'current';
a[i].addEventListener('click', Pagination.Click, false);
}
},
// write pagination
Finish: function() {
Pagination.e.innerHTML = Pagination.code;
Pagination.code = '';
Pagination.Bind();
},
// find pagination type
Start: function() {
if (Pagination.size < Pagination.step * 2 + 6) {
Pagination.Add(1, Pagination.size + 1);
}
else if (Pagination.page < Pagination.step * 2 + 1) {
Pagination.Add(1, Pagination.step * 2 + 4);
Pagination.Last();
}
else if (Pagination.page > Pagination.size - Pagination.step * 2) {
Pagination.First();
Pagination.Add(Pagination.size - Pagination.step * 2 - 2, Pagination.size + 1);
}
else {
Pagination.First();
Pagination.Add(Pagination.page - Pagination.step, Pagination.page + Pagination.step + 1);
Pagination.Last();
}
Pagination.Finish();
},
// --------------------
// Initialization
// --------------------
// binding buttons
Buttons: function(e) {
var nav = e.getElementsByTagName('a');
nav[0].addEventListener('click', Pagination.Prev, false);
nav[1].addEventListener('click', Pagination.Next, false);
},
// create skeleton
Create: function(e) {
var html = [
'<a>◄</a>', // previous button
'<span></span>', // pagination container
'<a>►</a>' // next button
];
e.innerHTML = html.join('');
Pagination.e = e.getElementsByTagName('span')[0];
Pagination.Buttons(e);
},
// init
Init: function(e, data) {
Pagination.Extend(data);
Pagination.Create(e);
Pagination.Start();
}
};
/* * * * * * * * * * * * * * * * *
* Initialization
* * * * * * * * * * * * * * * * */
var init = function() {
Pagination.Init(document.getElementById('pagination'), {
size: 30, // pages size
page: 1, // selected page
step: 3 // pages before and after current
});
};
document.addEventListener('DOMContentLoaded', init, false);
var分页={
代码:“”,
// --------------------
//效用
// --------------------
//转换初始化数据
扩展:函数(数据){
数据=数据|{};
Pagination.size=data.size | | 300;
Pagination.page=data.page | | 1;
Pagination.step=data.step | | 3;
},
//按编号添加页面(从[s]到[f])
加:功能(s、f){
对于(var i=s;i