Javascript 使用jQuery仅通过前5个元素重复

Javascript 使用jQuery仅通过前5个元素重复,javascript,jquery,each,Javascript,Jquery,Each,有人知道如何使用jQuery的每个重复前5个元素吗 $(".kltat").each(function() { // Only do it for the first 5 elements of .kltat class } 您可以实现如下计数器: var counter = 1; $(".kltat").each(function() { // Only do it for the first 5 elements of .kltat class if (counter==

有人知道如何使用jQuery的
每个
重复前5个元素吗

$(".kltat").each(function() {
   // Only do it for the first 5 elements of .kltat class
}

您可以实现如下计数器:

var counter = 1;
$(".kltat").each(function() {
   // Only do it for the first 5 elements of .kltat class
   if (counter==5) {
     return false;
   } else {
     counter++;
   }
}
或者类似的东西。

使用:

$(“.kltat”).filter(函数(i){return i<5;})
.每个(功能){
// ...
});
如果没有jquery:

[].slice.call(document.querySelectorAll('.kltat')).slice(0,5).forEach(function (element) {
    doStuff(element)
})
从:

通过使回调函数返回
false
,我们可以在特定迭代中中断
$.each()
循环

此外,同样的文档说明了您给
的回调。每个

对于数组,每次都会向回调传递一个数组索引和相应的数组值

因此,请尝试以下方法:

$(".kltat").each(function(index, element) {
   // do something
   // ...
   return index < 4;
});

    第1项 第2项 第3项 第4项 第5项 第6项 第7项
你可以做一个计数器,5点后返回,或者调用
切片(0,5)
$(“.kltat:lt(5)”)。每个(函数(){…
谢谢!如果
.filter
函数达到5,是否可以启动其他函数?就像SalmonKiller的答案一样?@deemeetree,这是可能的,但我不建议。如果你想要这样的行为,那么从语义上来说,使用SalmonKiller的方法可能更有意义。你不需要计数器
each()
callback提供一个索引作为它的第一个参数。谢谢!当.filter函数达到5时,如何从它启动其他函数?就像SalmonKiller?@deemeetree的答案一样,这是一个复杂的问题,需要不同的答案。你需要看看
.filter()
和选择器,如
lt
gt
@deemetree,因此您希望对项目1..4执行X,对项目5执行Y,然后中断?在这种情况下,我只会使用
if
/
else
块(但不带计数器变量),或者可能只使用简单的数组操作–即
Y(结果[4])
非jQuery版本可以简化为
[].slice.call(document.querySelectorAll('.kltat'),0,5).
[].slice.call(document.querySelectorAll('.kltat')).slice(0,5).forEach(function (element) {
    doStuff(element)
})
$(".kltat").each(function(index, element) {
   // do something
   // ...
   return index < 4;
});