【发布时间】:2017-01-11 18:03:58
【问题描述】:
在一个页面中,我有相同类的不同 div 元素
<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,我想将三个元素用于 time 对它们执行一些操作。
我尝试了切片功能:
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 );
但是有一个问题,在某个时间,我的代码会在 11 个 div 中选择一个 .slice(8,10) / .slice(9,11) 和一个。
所以在这些情况下 (point.l > elements.length()) 我想选择第一个 div 而不是超出的:
- 在 .slice(8,10) 的情况下,我想选择而不是 不存在 div '10' div 0 和 8,9 div。
- 在 .slice(9,11) 的情况下,我想选择而不是 不存在 div '10','11' div 0,1 和 9 div。
我怎样才能做到这一点?我可以用 slice 来做还是应该使用其他功能?
提前感谢所有帮助。
【问题讨论】:
-
你可以随时检查 points.ls 是否 >= elements.length
-
开始时你的 points.l 真的是 3 吗?如果,那么,你不会有 .slice(8,10) 的情况。 l 是2,而不是?无论如何,你的观点很明确。
-
是的,@sinisake 我输入了错误的切片范围,没有积分。l 从 3 开始,所以如果有 .slice(8,11) 和 .slice(9,12) 之类的情况。
-
为什么不使用
标签: javascript jquery