我有一组 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 的回答中寻找的内容相似。
关于javascript - 获取数组中的每第 n 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4806968/