javascript - 仅对数组 javascript 中的值进行分页
问题描述
只是我做了基本的分页现在我只需要从一个可以循环显示的 items_list 的数组列表中显示分页号。
到目前为止,我正在增加和减少从 innerHTML 获取它的事物数量,但我只需要从数组中循环它。
var items_list=[1,2,3,4,5,6,7,8,9,10];
function prev(){
var elements = document.querySelectorAll("ul.nav > li.myli");
elements.forEach((item, i) => {
x = item.innerHTML;
item.innerHTML = --x;
})
}
function next(){
var elements = document.querySelectorAll("ul.nav > li.myli");
elements.forEach(item => {
x = item.innerHTML;
item.innerHTML = ++x;
})
}
function selectedItem(){
var elements = document.querySelectorAll("ul.nav > li.myli");
elements.forEach(item => {
item.addEventListener('click',(e)=>{
console.log(e.target.textContent);
let selected = e.target.textContent;
document.getElementById('selectedText').innerHTML = selected
}
)
});
}
<html>
<head>
<title>Pagination</title>
<script src="./index.js"></script>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table>
<tr style="min-height: 34px;">
<td>
<button id="leftscroll" class="mybut" onclick="prev()">prev</button>
</td>
<td>
<ul class="nav">
<li id="a" class="myli" onclick="selectedItem()">1</li>
<li id="b" class="myli" onclick="selectedItem()">2</li>
<li id="c" class="myli" onclick="selectedItem()">3</li>
<li id="d" class="myli" onclick="selectedItem()">4</li>
</ul>
</td>
<td>
<button id="rightscroll" class="mybut" onclick="next()">next</button>
</td>
</tr>
</table>
<div id="selectedText" style="display: block;"> -- </div>
</body>
</html>
解决方案
如果它只是你想要的圆形东西,那么你可以使用modulo
下面的属性。
elements.forEach((item, i) => {
x = item.innerHTML;
item.innerHTML = (--x + items_list.length) % items_list.length;
})
elements.forEach(item => {
x = item.innerHTML;
item.innerHTML = (++x) % items_list.length;
})
更新代码以包含数组中的值
var items_list=[1,2,3,4,5,6,7,8,9,10];
function prev(){
var elements = document.querySelectorAll("ul.nav > li.myli");
elements.forEach((item, i) => {
let x = item.innerHTML;
item.innerHTML = items_list[((--x-1 + items_list.length)%items_list.length)];
})
}
function next(){
var elements = document.querySelectorAll("ul.nav > li.myli");
elements.forEach(item => {
let x = item.innerHTML;
item.innerHTML = items_list[((++x-1)%items_list.length)];
})
}
function selectedItem(){
var elements = document.querySelectorAll("ul.nav > li.myli");
elements.forEach(item => {
item.addEventListener('click',(e)=>{
console.log(e.target.textContent);
let selected = e.target.textContent;
document.getElementById('selectedText').innerHTML = selected
}
)
});
}
<html>
<head>
<title>Pagination</title>
<script src="./index.js"></script>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table>
<tr style="min-height: 34px;">
<td>
<button id="leftscroll" class="mybut" onclick="prev()">prev</button>
</td>
<td>
<ul class="nav">
<li id="a" class="myli" onclick="selectedItem()">1</li>
<li id="b" class="myli" onclick="selectedItem()">2</li>
<li id="c" class="myli" onclick="selectedItem()">3</li>
<li id="d" class="myli" onclick="selectedItem()">4</li>
</ul>
</td>
<td>
<button id="rightscroll" class="mybut" onclick="next()">next</button>
</td>
</tr>
</table>
<div id="selectedText" style="display: block;"> -- </div>
</body>
</html>
推荐阅读
- c++ - 在c ++ 11中使用异常时的无限循环
- php - 用于编写此 PHP 代码的设计模式是什么?
- neo4j - 我可以在每台用户的计算机上安装 neo4j 吗?
- laravel - 如何在 laravel 5.4 中获取帖子的评论名称
- javascript - oauth2 实现 php codeigniter
- python - Ubuntu18.04(Virtualbox)上的滑动背景问题
- xslt - 如何在特定属性之前获取属性计数?
- javascript - 从 Zapier 代码块返回行项目数组
- c# - 为什么在服务器上部署 RSACryptoServiceProvider VerifyData 方法需要 30 秒
- json - 向 Api 发送 POST 请求时出现 500 内部错误