链接的Javascript分页
javascript pagination for links
我正试图为我的<li>
链接做一个简单的(只有下一个以前的按钮)javascript分页
var current_page = 1;
var records_per_page = 5;
function prevPage()
{
if (current_page > 1) {
current_page--;
changePage(current_page);
}
}
function nextPage()
{
if (current_page < numPages()) {
current_page++;
changePage(current_page);
}
}
function changePage(page)
{
var btn_next = document.getElementById("btn_next");
var btn_prev = document.getElementById("btn_prev");
var items = document.querySelectorAll('#Mylinks li');
// Validate page
if (page < 1) page = 1;
if (page > numPages()) page = numPages();
for (var i = (page-1) * records_per_page; i < (page * records_per_page) && i < items.length; i++) {
items[i].style.display = "block";
}
if (page == 1) {
btn_prev.style.visibility = "hidden";
} else {
btn_prev.style.visibility = "visible";
}
if (page == numPages()) {
btn_next.style.visibility = "hidden";
} else {
btn_next.style.visibility = "visible";
}
}
function numPages()
{
return Math.ceil(items.length / records_per_page);
}
window.onload = function() {
changePage(1);
};
<div class="panel-body">
<div id="listingTable">
<ul id = "Mylinks" class="paging">
<li style="display: none;"><a href="http://site1.com" rel="nofollow">Description1</a></li>
<li style="display: none;"><a href="http://site2.com" rel="nofollow">Description2</a></li>
<li style="display: none;"><a href="http://site3.com" rel="nofollow">Description3</a></li>
<li style="display: none;"><a href="http://site4.com" rel="nofollow">Description4</a></li>
<li style="display: none;"><a href="http://site5.com" rel="nofollow">Description5</a></li>
<li style="display: none;"><a href="http://site6.com" rel="nofollow">Description6</a></li>
<li style="display: none;"><a href="http://site7.com" rel="nofollow">Description7</a></li>
<li style="display: none;"><a href="http://site100.com" rel="nofollow">Description100</a></li>
//Number of links is unlimited.
</ul>
</div>
<ul class="pager">
<li><a href="javascript:prevPage()" id="btn_prev">previous</a></li>
<li><a href="javascript:nextPage()" id="btn_next">next</a></li>
</ul>
</div>
我不想用jquery我的代码几乎可以工作了。
我需要将"display: none;"
更改为"display: block;"
的page1,然后将page1更改为"display: none;"
当用户转到下一页…
两个问题:
- 您只在
changePage
中定义了items
,但在其他地方使用了它。我把声明移到了全局作用域。 - 你设置了应该对
display:block
可见的元素,但没有设置display:none
不可见的元素。我改变了changePage
中的for
循环来做这两个。
下面的代码正常工作:
var current_page = 1;
var records_per_page = 5;
var items = document.querySelectorAll("#Mylinks li");
function prevPage()
{
if (current_page > 1) {
current_page--;
changePage(current_page);
}
}
function nextPage()
{
if (current_page < numPages()) {
current_page++;
changePage(current_page);
}
}
function changePage(page)
{
var btn_next = document.getElementById("btn_next");
var btn_prev = document.getElementById("btn_prev");
// Validate page
if (page < 1) page = 1;
if (page > numPages()) page = numPages();
for (var i = 0; i < items.length; i++) {
if (i >= (page-1) * records_per_page &&
i < page * records_per_page) {
items[i].style.display = "block";
} else {
items[i].style.display = "none";
}
}
if (page == 1) {
btn_prev.style.visibility = "hidden";
} else {
btn_prev.style.visibility = "visible";
}
if (page == numPages()) {
btn_next.style.visibility = "hidden";
} else {
btn_next.style.visibility = "visible";
}
}
function numPages()
{
return Math.ceil(items.length / records_per_page);
}
window.onload = function() {
changePage(1);
};
<div class="panel-body">
<div id="listingTable">
<ul id = "Mylinks" class="paging">
<li style="display: none;"><a href="http://site1.com" rel="nofollow">Description1</a></li>
<li style="display: none;"><a href="http://site2.com" rel="nofollow">Description2</a></li>
<li style="display: none;"><a href="http://site3.com" rel="nofollow">Description3</a></li>
<li style="display: none;"><a href="http://site4.com" rel="nofollow">Description4</a></li>
<li style="display: none;"><a href="http://site5.com" rel="nofollow">Description5</a></li>
<li style="display: none;"><a href="http://site6.com" rel="nofollow">Description6</a></li>
<li style="display: none;"><a href="http://site7.com" rel="nofollow">Description7</a></li>
<li style="display: none;"><a href="http://site100.com" rel="nofollow">Description100</a></li>
<!-- Number of links is unlimited. -->
</ul>
</div>
<ul class="pager">
<li><a href="javascript:prevPage()" id="btn_prev">previous</a></li>
<li><a href="javascript:nextPage()" id="btn_next">next</a></li>
</ul>
</div>
我猜smarx的答案是正确的,但我还是把这个答案贴出来了。
https://jsfiddle.net/rnLbo80q/2/var current_page = 1;
var records_per_page = 5;
var items = document.querySelectorAll("#MypLinkbox li");
function prevPage() {
if (current_page > 1) {
current_page--;
changePage(current_page);
}
}
function nextPage() {
if (current_page < numPages()) {
current_page++;
changePage(current_page);
}
}
function changePage(page) {
var btn_next = document.getElementById("btn_next");
var btn_prev = document.getElementById("btn_prev");
// Validate page
if (page < 1) page = 1;
if (page > numPages()) page = numPages();
// hide all
for (var i = 0; i < items.length; i++){
items[i].style.display = "none";
}
for (var i = (page-1) * records_per_page; i < (page * records_per_page) && i < items.length; i++) {
items[i].style.display = "block";
}
if (page == 1)
btn_prev.style.visibility = "hidden";
else
btn_prev.style.visibility = "visible";
if (page == numPages())
btn_next.style.visibility = "hidden";
else
btn_next.style.visibility = "visible";
}
function numPages() {
return Math.ceil(items.length / records_per_page);
}
window.onload = function() {
changePage(1);
};
相关文章:
- 使用CSS或JavaScript计算分页符的数量
- Javascript数组表分页
- Javascript谷歌风格的分页菜单
- 图片库,最大项目数和javascript分页
- 如何使用javascript检测数据表分页的其他页面中的复选框
- JavaScript 不适用于分页
- 分页没有'当我点击javascript和php按钮时,它不起作用
- Scrapy分页使用javascript
- JSON 分页响应 JavaScript
- 循环遍历分页的 API JavaScript
- 当我在 javascript 中单击分页项时,我如何查看图片
- Facebook 社交插件在 PHP 中无法使用 JavaScript 分页
- 使用 JavaScript 对 MSword 文档文本进行分页
- 理解使用 JavaScript 在分页中加载数据的概念时出现问题
- 任何使用javascript(打印媒体)进行分页符的方法
- 在 JavaScript 选项卡中显示分页
- 滚动分页(搜索系统),Jquery.Javascript
- DataTable-分页和筛选器don'不适用于JavaScript生成的表
- displaytag分页javascript计数复选框
- 无限滚动分页javascript实现问题