我一直想知道是否有一种很好的jQuery方式来执行以下操作:
var count = 0;
$("p").each(function() {
if (count >= 5)
return false;
$(this).toggleClass("highlight");
count++;
});
jQuery中是否有与each()
类似的功能,允许我设置限制它循环的项目数量,或者这是最好的做事方式?
答案 0 :(得分:13)
最简单的事情是.slice
:
$("p").slice(0, 5).toggleClass("highlight");
// only <p>s from index 0 (inclusive) to 5 (exclusive)
答案 1 :(得分:4)
您可以简单地限制所选元素:$("p:lt(5)").toggleClass("highlight");
答案 2 :(得分:3)
看看slice()
。这将拆分$("p")
返回的数组,以便与.each()
:
$("p").slice(0, 4).each(function() {
// Do stuff
});
.slice()
将起始和结束索引作为参数。在上面的例子中,我们从第一个数组元素(索引0)开始,然后将接下来的5个元素返回到索引4。
答案 3 :(得分:2)
它会对你有用吗?
$("p").each(function(index){
if (index >4)
{
return false;
}
...
});
答案 4 :(得分:1)
编写它的另一种方法是使用filter
:
$("p").filter(function(index) { return index < 5 }).toggleClass("highlight");
答案 5 :(得分:0)
使用for循环重复循环某个(事先已知)次数。如果重复次数未知,请使用while循环(或每个 - 函数式编程中的模拟)
所以,
var i;
for (i = 0; i < 6; i += 1) {
$("p")[i].toggleClass("highlight");
}