在一个页面中我有不同的divs元素具有相同的类
<div id="masterdiv">
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div>
使用setTimeout我想用三个元素来做他们的一些动作。
我尝试使用切片功能:
var elements = $("#masterdiv").find('.a');
var t = setInterval(function () {
var currentElements = elements.slice(points.f, points.l);
/* where points.f = 0 and points.l = 3 */
/* do something with currentElements then increment points.f and points.l +1 */
}, xinterval );
但是有一个问题,在某个时候我的代码将达到.slice(8,10)/ .slice(9,11)和一个11个div的选择。
所以在这些情况下(point.l > elements.length()
)我想要选择第一个div而不是超出的div:
我怎样才能做到这一点?我可以用切片做或者我应该使用其他功能吗?
提前感谢所有帮助。
答案 0 :(得分:2)
你可以像这样递增你的变量,
var elements = $("#masterdiv").find('.a');
/* where points.f = 0 and points.l = 3 */
var t = setInterval(function () {
var currentElements;
if(points.l > elements.length && points.f<=elements.length){
tempArr1 = elements.slice(points.f);
tempVar = points.l % elements.length;
tempArr2 = elements.slice(0,tempVar);
currentElements = [...tempArr1,...tempArr2];
}
else{
currentElements = elements.slice(points.f, points.l);
}
/* do something with currentElements then increment points.f and points.l +1 */
}, xinterval );
我没有报道边缘情况,请找到你自己;)
答案 1 :(得分:2)
另一种方法是使用pop()和push()数组函数,如下所示:
~$ jupyter nbextension enable pep8_magic.py --user
Enabling notebook extension pep8_magic.py...
- Validating: problems found:
- require? X pep8_magic.py
以下是codepen演示:http://codepen.io/kostasx/pen/mRVzqQ?editors=0010