Javascript-创建一个以30步为增量的for循环
我正在尝试为循环创建一个增量为30步的Javascript-创建一个以30步为增量的for循环,javascript,loops,for-loop,Javascript,Loops,For Loop,我正在尝试为循环创建一个增量为30步的。这样做的目的是希望在不使用任何插件的情况下使用它进行非常简单和原始的分页 首先,我有一个无序的HTML列表: <ul id="pagination"></ul> 上面的代码在控制台中返回: &$skip=0 &$top=30 &$skip=30 &$top=60 &$skip=60 &$top=90 &$skip=90 &$top=120 但这就是问题所在。如果您注
。这样做的目的是希望在不使用任何插件的情况下使用它进行非常简单和原始的分页
首先,我有一个无序的HTML列表:
<ul id="pagination"></ul>
上面的代码在控制台中返回:
&$skip=0 &$top=30
&$skip=30 &$top=60
&$skip=60 &$top=90
&$skip=90 &$top=120
但这就是问题所在。如果您注意到和$skip
始终与前面的和$top
匹配。实际上,我需要的是返回类似的东西:
&$skip=0 &$top=30
&$skip=31 &$top=60
&$skip=61 &$top=90
&$skip=91 &$top=120
我怎样才能做到这一点?我感觉我就快到了,但我没有把握好。如果需要任何其他细节,请告诉我,谢谢 只需增加30,而不是c++
:
for (var c = 1; c <= total; c+=30)
for(var c=1;c只需增加30,而不是c++
:
for (var c = 1; c <= total; c+=30)
for(var c=1;c我想我已经找到了答案。这可能不是最好的选择,但目前对我来说很有效。希望它能帮助其他人,甚至有人会提供比我更好的答案。我创建了一个数组,然后进行操作
var total = 115;
var intervalo = Math.ceil(total / 30);
var pagination = document.getElementById('pagination');
var range = [];
for (var c = 1; c <= intervalo; c++) {
var top = c * 30;
var skip = (c * 30) - 30;
range.push({
skip: skip,
top: top
});
// console.log('&$skip=' + skip + ' &$top=' + top);
var li = document.createElement('li');
li.id = c;
li.setAttribute('data-skip', '&$skip=' + skip);
li.setAttribute('data-top', '&$top=' + top);
var a = document.createElement('a');
a.href = '#';
a.textContent = c;
li.appendChild(a);
pagination.appendChild(li);
}
console.log(JSON.stringify(range));
for (var r = 1; r < range.length; r++) {
range[r].top = range[r].top - 1;
}
console.log(JSON.stringify(range));
var总计=115;
var intervalo=数学ceil(总计/30);
var pagination=document.getElementById('pagination');
var范围=[];
对于(var c=1;c我想我已经找到了答案。这可能不是最好的选择,但目前它对我很有效。希望它能帮助其他人,甚至有人会提供比我更好的答案。我创建了一个数组,然后进行操作
var total = 115;
var intervalo = Math.ceil(total / 30);
var pagination = document.getElementById('pagination');
var range = [];
for (var c = 1; c <= intervalo; c++) {
var top = c * 30;
var skip = (c * 30) - 30;
range.push({
skip: skip,
top: top
});
// console.log('&$skip=' + skip + ' &$top=' + top);
var li = document.createElement('li');
li.id = c;
li.setAttribute('data-skip', '&$skip=' + skip);
li.setAttribute('data-top', '&$top=' + top);
var a = document.createElement('a');
a.href = '#';
a.textContent = c;
li.appendChild(a);
pagination.appendChild(li);
}
console.log(JSON.stringify(range));
for (var r = 1; r < range.length; r++) {
range[r].top = range[r].top - 1;
}
console.log(JSON.stringify(range));
var总计=115;
var intervalo=数学ceil(总计/30);
var pagination=document.getElementById('pagination');
var范围=[];
对于(var c=1;cfor(var c=1;c)我可能过于简化了,但是…var skip=(c*30)-30+1;
我已经试过了,但是会更难(我想)将li
添加到列表中。谢谢!@Hodrobond。好建议,唯一的问题是skip将从1
开始,它必须从0
开始。如果从0开始,它应该在29结束。不是吗?0-29,30-59,60-89等等。对于(var c=1;c我可能过于简化了,但是…var skip=(c*30)-30+1;
我已经试过了,但那会更难(我想)将li
添加到列表中。谢谢!@Hodrobond。好建议,唯一的问题是跳过将从1
开始,并且必须从0
开始。如果从0开始,那么应该在29结束。不是吗?0-29、30-59、60-89等等。我想你是指(var c=1;c我确定。如果仔细想想,intervalo
是除以var intervalo=Math.ceil(total/30)
的结果,那么在这种情况下它将等于4
,总共有115个元素。无论如何,谢谢你,谢谢你。我想你的意思是(var c=1;c我敢肯定。如果思考一下,intervalo
是除以var intervalo=Math.ceil(total/30)
的结果,那么在这种情况下它将等于4
,总共有115个元素。无论如何,谢谢你,谢谢你。