Javascript 使用jQuery仅通过前5个元素重复
有人知道如何使用jQuery的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==
每个重复前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;
});