我有一个 HTML 元素数组。我正在检查数组中的前一个对象是否存在,如下所示:
var boxes = $('.box'); // creating the array
boxes.each(function(i){ // going through the array
var prevBox = i>0?$(boxes[i-1]):false; // check whether a previous box exists
if (prevBox) { } // do something
else { } // do something else
});
这效果很好。但我还需要检查数组中每四个对象(框)是否存在,或者更准确地说,当前对象之前三个对象是否存在。
这不起作用:
var prevBox = i>0?$(boxes[i-4]):false;
我相信使用jQuery.grep()
并检查是否(i % 4) == 0
可能是答案,但由于我对 Javascript 的了解有限,我不知道如何将其应用到我现在所拥有的内容中。
有人可以帮忙吗?谢谢!
不能只用for循环吗?
for ( var i=0; i< boxes.length; i+=4 )
{
// do stuff with boxes[i]
}
我对 JQuery 不太感兴趣,但在常规 JavaScript 中,它可以很好地工作。
编辑:您已经在某种程度上重新描述了问题,因此您想对每个项目采取行动,但对第四个项目做一些具体的事情......
var previousTop;
for ( var i=0; i< boxes.length; i++ )
{
// do stuff with boxes[i]
if ( ( (i+1) % 4 ) === 0 )
{
previousTop = boxes[i].position.top;
// do stuff with the fourth item
}
}
这里涉及的范围更广previousTop
然后,在您执行其他需要执行的操作之前,每四个项目都会设置一次。然后,当您到达下一个第四个元素时,您的临时变量中将包含前一个元素的值,这听起来与您从下面对 @patrick dw 的答案的响应中寻找的内容类似。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)